javascript - 我们可以让一个变量在 Javascript 中充当 getter 吗?

标签 javascript

在 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"

From: 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)

关于javascript - 我们可以让一个变量在 Javascript 中充当 getter 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54401060/

相关文章:

javascript - 我可以在不在网页上渲染的情况下检测动态填充的 div 框的宽度吗?

javascript - 使用 jQuery,如何检查表格单元格是否为空?

javascript - 通知声音不起作用

javascript - Ajax GET 请求不显示 URL 中的参数

javascript - 如何在 JavaScript 中将 addEventListener 指定为 ON?

javascript - 在生成的 html 中为 <img> 标签设置默认的点击行为

javascript - 执行 innerHTML 后按钮上的文本不会更改

javascript - 在 Angular 中,使用 async/await 时如何处理 promise 拒绝

javascript - Cognos 文本框提示的多重检查

javascript - react : Conditional Render - "Cannot read property ' 0' of null"