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);