var obj = { get b() { return 2; } };
存儲器屬性:屬性 b 使用 getter,setter 方法定義es6
當未設置 setter(getter) 時,不可修改,忽略 writable 和 value,即只讀。this
讀寫的前提:避免使用存儲器屬性!spa
var obj = { get b () { return this._b_; }, set b (val) { this._b_ = val; } }; obj.b = 3; console.log(obj.b); // 3 var orobj = Object.create(obj); // 繼承 console.log(orobj.b); // 3
es6 類中使用存儲器屬性code
class Person { constructor (name, age) { this.name = name; this.age = age; } set name (name) { console.log("setter"); this._name = name; //避免出現無限遞歸,致使棧溢出,變量請用 _ } get name () { console.log("getter"); return this._name; } // 加一個成員方法 sayName () { console.log(this.name); } } var p = new Person("zhang", 25); console.log(p._name); // "zhang"
雙向數據綁定:blog
待更新繼承