六维教程

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 执行获取实际值。

上一篇
Hexo Post对象
下一篇
Hexo [_Document]