gpt4 book ai didi

javascript - 全局 getter javascript

转载 作者:行者123 更新时间:2023-12-02 16:14:37 27 4
gpt4 key购买 nike

在javascript中,你可以像这样设置对象属性getter

const obj = {
get a() {
return 1
}
}

console.log(obj.a) // 1

是否可以定义一个全局 getter?像这样的东西:

let a = get() { return 1 }
console.log(a) // 1

或者,在节点 REPL 中,obj 显示为:{a: [Getter]},那么是否有某种我可以使用的构造函数:let a = new Getter( () => {返回 1})

另外,我可以用 setter 做同样的事情吗?

最佳答案

由于 global 变量附加到 window 对象,您可以使用 Object.defineProperty() 来实现:

Object.defineProperty(window, 'a', {
enumerable: true,
configurable: true,
get: function() {
console.log('you accessed "window.a"');
return this._a
},
set: function(val) {
this._a = val;
}
});

a = 10;

console.log(a);

请注意,在 Node.js 中,the global object is called global ,而不是 window

Node.js

关于javascript - 全局 getter javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67081688/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com