getter 和 setter 是 VB.Net 中的一个美:
Get
Return width
End Get
Set(ByVal value As Integer)
width = value
End Set
在 Javascript 中,我们可能会这样做:
function Test() {
var width = 100;
this.__defineGetter__("Width", function() {
return width;
});
this.__defineSetter__("Width", function(value){
width = value;
});
}
它看起来像一盘被 kuri 洗劫一空的意大利面。我们有哪些更简洁的选择?
注意:新代码应该使用 new Test().Width
而不是 new Test().Width()
访问值。
最佳答案
使用 ES5,您将能够:
function Test() {
var a = 1;
return {
get A() { return a; },
set A(v) { a = v; }
};
}
getter/setter 函数当然可以做任何你想让它们做的事。
关于javascript - __defineGetter__ 的完美替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5731454/