vue源码解析之基础了解

语言: CN / TW / HK

 

1.
Object.defineProperty  #给对象添加/修改属性(指定描述符)
configurable: true/false 是否可以重新 define
enumerable: true/false 是否可以枚举(for..in / keys())
value: 指定初始值
writable: true/false value 是否可以修改
get: 回调函数, 用来得到当前属性值
set: 回调函数, 用来监视当前属性值的变化

#这里再说下  如果说下
var obj={
    name : 'sss',
    full_name:{
        first_name:'ming',
        last_name:'xing',
    }
}
obj.full_name.last_name = 'new';//这个时候会先触发obj的get 然后触发 obj.full_name的get最后触发obj.full_name.last_name的set
2. [].slice.call(lis): 将伪数组转换为真数组 || Array.prototype.slice.call(lis) #lis 是维数组,并不是数组对像
    这里有个奇怪的现象 node.childNodes 可以直接使用forEach??? node.attributes 就不可以使用
3. node.nodeType: 得到节点类型 1是元素节点 2是属性节点 3是文本节点
4. DocumentFragment: 文档碎片(高效批量更新多个节点) 理解为不被浏览器渲染的虚拟DOM节点
5. obj.hasOwnProperty(prop): 判断 prop 是否是 obj 自身的属性