多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 对象劫持 ``` <script> /* get 变量 获取当前变量的值会触发这个get方法 set 变量 设置当前变量的值会触发这个set方法 viewmodel 为什么vue里面的变量会有get和set这两个方法呢 底层实现的时候用了一个Object.defineProperty() Object.defineProperty: 用来绑定对象上面属性的get和set方法 */ var obj = {}; // obj上增加一个name属性 // obj.name = "张三"; // Object.defineProperty(对象, '对象要增加的属性', {拓展属性}) Object.defineProperty(obj, 'name', { // value: '张三' writable: true, // 判断是否可以修改, true: 可以修改属性的值 false: 不可以属性上的值 默认是false enumerable: true, // 判断是否可以被枚举 默认是false configurable: true, // 判断是否可以删除 true: 可以删除属性 false: 不能删除 默认是false // get: function () { // console.log('get方法'); // return '张三'; // }, // set: function (val) { // console.log('set方法'); // console.log(val); // } }) console.log(obj.name) // 会触发get方法 obj.name = '李四' // 会触发set方法 console.log('--------------------') console.log(Object.keys(obj)); // Object.keys获取到key值的集合(key值组成的数组) delete obj.name console.log(obj) var app = new Vue({ el: '#app', data: { a1: 1, test2: '890' } }) console.log(app) </script> ```