首页 > 解决方案 > 我们可以让变量在 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

标签: javascript

解决方案


要调用该函数,您需要使用它调用它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)


推荐阅读