Hexo [Getter]
在模版中用 console.log(post) 打印时,你会看到:
path: [Getter],
permalink: [Getter],
prev: [_Document],
next: [_Document]
所以,Hexo中[Getter]是什么?
介绍
[Getter] 是一个函数,用于获取属性的值。
Hexo 使用 Object.defineProperty 定义了这些属性。它们不是静态存储的字符串,而是一个“访问器函数”。
只有当你真正去读取它时(例如在 EJS 模板中写 <%= post.permalink %>,或在 JS 中写 post.path),这个函数才会被执行并计算出结果。
这样做节省了内存占用,避免了不必要的字符串拼接计算。
永远不要使用 delete 或遍历 Object.keys(post) 来操作这些 Getter 属性。
如果需要生成纯净的 JSON 数据,建议手动构建新对象并逐项赋值(如 { title: post.title, ... }),触发 Getter 执行获取实际值。