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 自身的屬性