JavaScript 中的隐式访问器?
Implicit Accessors in JavaScript?
在 ColdFusion(一种服务器端语言)中,可以让 CF 在 class 中为您生成任何 getter 和 setters,如下所示:
component output="false" accessors="true" {
property string title;
public any function init() output = false {
setTitle("");
return this;
}
}
这里,我从来不写setTitle()
setter,它只是隐含的。
在 ES5 / ES6 / ES7 中是否有 JavaScript(甚至 jQuery)这样的东西?
您可以为任何对象分配任意属性而无需显式编写 setters/getters。
尽管您可以根据需要使用它们。
function myClass() {}
Object.defineProperty(myClass.prototype, "bar", {
get: function get_bar() {
return this._bar;
},
set: function set_bar(value) {
this._bar = value;
alert(value);
}
});
var instance = new myClass();
instance.foo = "123"; // Arbitary
instance.bar = "456"; // Explicit setter/getter
console.log(instance.foo, instance.bar);
在 ColdFusion(一种服务器端语言)中,可以让 CF 在 class 中为您生成任何 getter 和 setters,如下所示:
component output="false" accessors="true" {
property string title;
public any function init() output = false {
setTitle("");
return this;
}
}
这里,我从来不写setTitle()
setter,它只是隐含的。
在 ES5 / ES6 / ES7 中是否有 JavaScript(甚至 jQuery)这样的东西?
您可以为任何对象分配任意属性而无需显式编写 setters/getters。
尽管您可以根据需要使用它们。
function myClass() {}
Object.defineProperty(myClass.prototype, "bar", {
get: function get_bar() {
return this._bar;
},
set: function set_bar(value) {
this._bar = value;
alert(value);
}
});
var instance = new myClass();
instance.foo = "123"; // Arbitary
instance.bar = "456"; // Explicit setter/getter
console.log(instance.foo, instance.bar);