Неявные средства доступа в JavaScript?
В ColdFusion (язык на стороне сервера) CF может генерировать любые методы получения и установки в классе для вас, например, так:
component output="false" accessors="true" {
property string title;
public any function init() output = false {
setTitle("");
return this;
}
}
Здесь я никогда не пишу setTitle()
сеттер, это просто неявно.
Есть ли такая вещь для JavaScript (или даже jQuery) в ES5 / ES6 / ES7?
1 ответ
Решение
Вы можете назначить произвольные свойства любому объекту без явного написания методов установки / получения.
Хотя вы можете использовать их, если хотите.
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);