1.属性监听,通过对属性监听通知订阅者。observer 2.模板替换和解析。根据指令模板替换数据,以及绑定响应的更新函数。compile 3.数据监控:监听属性和模板的变动,执行属性回调更新视图。 observer核心: 根据Object.defineProperty()监听数据的变动,通过数据变 ...
分类:
其他好文 时间:
2018-06-21 22:35:10
阅读次数:
131
link:https://www.cnblogs.com/weiqu/p/5860945.html || http://speakingjs.com/es5/ch17.html ...
分类:
其他好文 时间:
2018-06-18 10:25:32
阅读次数:
160
// 语法:/* * @param: obj:需要定义属性的对象; * prop:需要定义或修改的属性; * descriptor:将被定义或修改属性的描述符*/Object.defineProperty(obj,prop,descriptor) // 对象里目前存在的属性描述符主要有两种形式: 数 ...
分类:
其他好文 时间:
2018-06-14 17:59:28
阅读次数:
159
1、object.defineProperty 2、value 3、writable 4、configurable 5、enumerable 6、for in && Object.keys()的区别 7、get() && set() 注意:当使用了get()方法或者set()方法的时候就不能使用va ...
分类:
其他好文 时间:
2018-06-10 20:11:52
阅读次数:
264
##面向对象的特征 一.封装(隐藏实现细节的过程) 好处:重用 隐藏细节 访问器:get(获取值) 修改器:set(设值) 例:Object.defineProperty(Student.prototype,"name"){ set:function(name){ _name=name; }, ge ...
分类:
Web程序 时间:
2018-06-10 18:32:46
阅读次数:
176
一、概述 vuejs是采取数据劫持结合发布者-订阅者模式的方式实现model-->view的数据绑定,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的数据回调。 至于view-model的绑定是对表单添加了chan ...
分类:
其他好文 时间:
2018-06-06 15:45:13
阅读次数:
139
图很清晰 当我们把一个普通的 JavaScript 对象传给 Vue 实例的 data 选项,Vue 将遍历此对象所有的属性,并使用 Object.defineProperty 把这些属性全部转为 getter/setter。这些 getter/setter 对用户来说是不可见的,但是在内部它们让 ...
分类:
其他好文 时间:
2018-05-29 00:11:41
阅读次数:
152
Object.defineProperty() 语法: 参数说明: obj:必需。目标对象 prop:必需。需定义或修改的属性的名字descriptor:必需。目标属性所拥有的特性 返回值: 传入函数的对象。即第一个参数obj 针对属性,我们可以给这个属性设置一些特性,比如是否只读不可以写;是否可以 ...
分类:
其他好文 时间:
2018-05-25 14:02:00
阅读次数:
157
语法 参数说明: obj:必需。目标对象 prop:必需。需定义或修改的属性的名字descriptor:必需。目标属性所拥有的特性 返回值: 传入函数的对象。即第一个参数obj。 针对属性,我们可以给这个属性设置一些特性,比如是否只读不可以写;是否可以被for..in或Object.keys()遍历 ...
分类:
Web程序 时间:
2018-05-24 11:45:57
阅读次数:
202
语法 参数 返回值 被传递给函数的对象。 使用说明: 我们一般给一个对象创建一个新的属性时,大部分采用的都是如下方式: 但是这种创建方式的属性,其值可被修改,可被遍历等等。 如果想创建隐藏属性(使用for in 无法遍历出来) 或者想创建一个只读属性(不可写入),使用这种方式就不可取了。在ES6中, ...
分类:
编程语言 时间:
2018-04-26 16:54:12
阅读次数:
182