1. 程式人生 > 其它 >JS中Object.defineProperty()方法實現資料雙向繫結

JS中Object.defineProperty()方法實現資料雙向繫結

技術標籤:jsjavascriptjava

Object.defineProperty() 方法會直接在一個物件上定義一個新屬性,或者修改一個物件的現有屬性,並返回此物件。
語法:Object.defineProperty(obj物件, prop屬性, descriptor描述符)
1、 obj 物件 => 給誰加
2 、propName 屬性名 => 要加的屬性的名字 【型別:String】
3、 descriptor 屬性描述 => 加的這個屬性有什麼樣的特性【型別:Object】
Object.defineProperty()有以下幾種屬性
1.value 預設值

2. writable 修改/可寫 true可以修改值/false 只讀,不可以修改
3. configurable 刪除 true刪除/false不可以刪除
4. enumerable 可列舉/迴圈 true/false

 var obj={}
        Object.defineProperty(obj,"name",{
            value:"糯米",
            writable:true,//false只讀
            configurable:false, //true刪除
            enumerable:
true,//可列舉/迴圈 }) console.log("修改前",obj) obj.name="小糯米" console.log("修改後",obj) delete obj.name console.log(obj) //可列舉/迴圈 for(var key in obj){ console.log(key) }

在這裡插入圖片描述
5.get():獲取
6.set():存/設定

var obj=
{"name":"糯米"} Object.defineProperty(obj,"name",{ get:function(){ console.log("我來獲取值了。。。") }, set:function(){ console.log("我來設定值了。。。") } }) obj.name obj.name="sasas"

在這裡插入圖片描述