var obj = { get b() { return 2; } };
存储器属性:属性 b 使用 getter,setter 方法定义
当未设置 setter(getter) 时,不可修改,忽略 writable 和 value,即只读。
读写的前提:避免使用存储器属性!
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 类中使用存储器属性
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"
双向数据绑定:
待更新