JS中Object.defineProperty()方法實現資料雙向繫結
阿新 • • 發佈:2020-12-19
技術標籤:jsjavascriptjava
Object.defineProperty() 方法會直接在一個物件上定義一個新屬性,或者修改一個物件的現有屬性,並返回此物件。
語法:Object.defineProperty(obj物件, prop屬性, descriptor描述符)
1、 obj 物件 => 給誰加
2 、propName 屬性名 => 要加的屬性的名字 【型別:String】
3、 descriptor 屬性描述 => 加的這個屬性有什麼樣的特性【型別:Object】
Object.defineProperty()有以下幾種屬性
1.value 預設值
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"