1、Object框架
新增的方法有:this
还须要重视的是,get/set属性读取访问器。定义属性时使用get/set,能够在属性被读写时作一些处理:编码
var person = { _age: 18, get age(){ return this._age; }, set age(val){ if(val<0 || val>100){ console.log('设置年龄无效!'); } else { this._age = val; } } } person.age; //18 person.age = 300; //设置年龄无效! person.age = 30; person.age; //30
结合Object.defineProperty,下面是VUE这种MVVM框架实现双向绑定的原理:spa
function Archiver() { var temperature = null; var archive = []; Object.defineProperty(this, 'temperature', { get: function() { console.log('get!'); return temperature; }, set: function(value) { temperature = value; archive.push({ val: temperature }); } }); this.getArchive = function() { return archive; }; } var arc = new Archiver(); arc.temperature; // 'get!' arc.temperature = 11; arc.temperature = 13; arc.getArchive(); // [{ val: 11 }, { val: 13 }]
代码直接摘自MDN。prototype
2、Array双向绑定
3、Stringcode
4、其余对象