Vue雙向數(shù)據(jù)綁定原理
1.屬性訪問器
ECMAScript中的屬性分為兩種:數(shù)據(jù)屬性和訪問器屬性
1 數(shù)據(jù)屬性
數(shù)據(jù)屬性有4個(gè)描述其行為的特性
[[Configurable]]可配置性
[[Enumerable]]可枚舉性
[[Writable]]可寫性
[[Value]]值2 訪問器屬性
訪問器屬性有4個(gè)描述其行為的特性
[[Configurable]]可配置性
[[Enumerable]]可枚舉性
[[Get]]讀取屬性
[[Set]]設(shè)置屬性
訪問器屬性不能直接設(shè)置,必須使用Object.defineProperty()方法。3 Object.defineProperty定義或修改屬性特性
定義對象時(shí)添加的數(shù)據(jù)屬性,其特性默認(rèn)為true,要修改屬性的默認(rèn)特性,必須使用ECMAScript5中的Object.defineProperty()方法,此方法接受3個(gè)參數(shù):屬性所在的對象,屬性的名字,一個(gè)描述符對象。
調(diào)用Object.defineProperty()方法時(shí),如果不指定,configurable,enumerable,writeable都為false。4定義多個(gè)屬性O(shè)bject.defineProperties()
利用這個(gè)方法,可以通過描述符一次定義多個(gè)屬性,接受兩個(gè)參數(shù)。5讀取屬性特性O(shè)bject.getOwnPropertyDescriptor()
MVVM框架vue實(shí)現(xiàn)數(shù)據(jù)綁定的方式就是屬性訪問器