javascript - 我们可以让变量在 Javascript 中作为 getter 工作吗?
问题描述
在 Javascript 中,我们可以编写:
var obj = {
log: ['a', 'b', 'c'],
get latest() {
if (this.log.length == 0) {
return undefined;
}
return this.log[this.log.length - 1];
}
}
console.log(obj.latest); // Outputs "c"
来自:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get
现在,我必须打电话obj[key]
来做这项getter
工作。现在:
let obj = {
get root () {
return 2
}
}
console.log(obj) // Returns { root: [Getter] }, I would like it to return "2"
我们能以某种方式获得obj
回报吗?2
解决方案
要调用该函数,您需要使用它调用它obj.root
let obj = {
get root() {
return 2
}
}
console.log(obj.root)
另一方面,您可以简单地写obj = obj.root
let obj = {
get root() {
return 2
}
}
obj = obj.root
console.log(obj)
推荐阅读
- c++ - c++中的动态分配问题,仅适用于第一次迭代
- node.js - 在 mongo db 集合中给出未定义的值
- rubygems - 如何选择实时推送通知 API
- visual-c++ - 为什么在我的静态库的 DUMPBIN.exe 输出中,`malloc` 和 `free` 被列为 `External` 和 `UNDEF`?
- wordpress - 删除特定角色的 wp 管理栏节点 - $wp_admin_bar->remove_node( 'string' );
- rest-assured - 放心:如何将给定的值从一个端点传递到另一个端点?
- c# - NpgsqlException:dotnet ef 数据库更新上的“未知消息代码:74”
- python - 如果我在 HPC 上使用 Dask-Jobqueue,我还需要使用 Dask-ML 来运行 scikit-learn 代码吗?
- ionic-framework - 带有图像的 Ionic 4 输入装饰器
- python - 如何使用 Selenium 和 Python 处理 try 循环中的错误