gpt4 book ai didi

javascript - 在构造函数中定义get/set

转载 作者:数据小太阳 更新时间:2023-10-29 05:17:46 25 4
gpt4 key购买 nike

这可以做到:

var o = {
_foo : "bar",
get Foo() { return _foo; },
set Foo(value) { _foo = value; }
};

但是我的代码是在构造函数中定义的,所以我想要这样的东西:

function Something(defaultFoo) {
var _foo = defaultFoo;
get Foo() { return _foo; }; // invalid syntax
set Foo(value) { _foo = value; }; // invalid syntax
}

var something = new Something("bar");
console.log(something.Foo);

该语法无效。有一些变体有效吗?

最佳答案

您可以使用原型(prototype)属性并分配 setter 和 getter。

顺便说一句,您需要将 _foo 用作属性,而不是局部变量。

function Something(defaultFoo) {
this._foo = defaultFoo;
}

Object.defineProperty(Something.prototype, 'foo', {
get: function() {
return this._foo;
},
set: function(value) {
this._foo = value;
}
});

var something = new Something("bar");
console.log(something.foo);
something.foo = 'baz';
console.log(something.foo);

关于javascript - 在构造函数中定义get/set,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44214980/

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