object.defineproperty 的用法
本人語言組織能力有限,且暫為記錄一下,故簡單潦草寫下
object.defineproperty據說很牛,連observer的草案也被髮起人回收,vuejs的雙向繫結也是通過這個方法實現的
他有三個引數
1、被修改的物件
2、新增或者修改的物件屬性
3、描述
描述分為兩種:1:資料描述 2:存取描述
1:資料描述即為簡單提供value
value:屬性的值
writable:如果為false,屬性的值就不能被重寫,只能為只讀了
var a = {};
Object.defineProperty(a, "b", {
value : 123,
writable : false});
a.b=223;
a.b //列印123
enumerable:是否能在for...in迴圈中遍歷出來或在Object.keys中列舉出來
var a = {};
Object.defineProperty(a, "b", {
value : 123,
enumerable : false});
Object.keys(a) //列印[]
var a = {};
Object.defineProperty(a, "b", {
value : 123,
enumerable : true});
Object.keys(a) // 列印["b"]
當設定的configurable 為false 則不能在設定其他value,configurable,writable屬性
2存取描述 即為get set 並且 get set不能與value同時使用
使用get set 預設調取該屬性的get方法
set方法是設定值的時候呼叫。。。
也就是說
當使用get set方法的時候就不能使用value 等屬性
var a={};
Object.defineProperty(a,'b',{
get:function (v){
console.log("獲取的值為")
return 1;
},
set:function(v){
console.log("設定的值為"+v)
}
})
a.b=2;//設定的值為2
a.b // 獲取的值為 /b 列印1
相關文章
- Object.defineProperty基本用法Object
- Object.defineProperty的用法詳解Object
- JS apply的巧妙用法以及擴充套件到Object.defineProperty的使用JSAPP套件Object
- 神奇的 Object.definePropertyObject
- Object.defineProperty()Object
- Javascript中的Object.defineProperty()JavaScriptObject
- 理解Object.defineProperty的作用Object
- 理解Object.defineProperty()Object
- Javascript Object.defineProperty()JavaScriptObject
- 簡單的理解 Object.defineProperty()Object
- Javascrip—理解Object.defineProperty的作用(15)JavaObject
- 深入探究Object.definePropertyObject
- Object.defineProperty() (轉載)Object
- 詳解JavaScript之神奇的Object.definePropertyJavaScriptObject
- 淺解理解 Object.defineProperty()Object
- Javascript之Object.defineProperty方法JavaScriptObject
- 深入瞭解 Object.definePropertyObject
- 深入瞭解Object.definePropertyObject
- 你可能不知道的 Object.defineProperty()Object
- Object.defineProperty()和Proxy相關Object
- 011 Object.defineProperty 方法Object
- Object.defineProperty和資料代理Object
- 資料劫持Object.defineProperty與代理ProxyObject
- Object.defineProperty()應用程式碼例項Object
- Vue雙向繫結的實現原理系列(一):Object.definepropertyVueObject
- JS中的雙向資料繫結及Object.defineProperty方法JSObject
- js--物件內部屬性與 Object.defineProperty()JS物件Object
- Object.defineProperty與雙向繫結、資料監聽Object
- Qdrant用法;Qdrant在langchain裡的用法LangChain
- 善用Object.defineProperty巧妙找到修改某個變數的準確程式碼位置Object變數
- vue原始碼學習:Object.defineProperty 物件屬性監聽Vue原始碼Object物件
- SQL AS 的用法SQL
- SUBMIT 的用法MIT
- indexOf()的用法Index
- Promise的用法Promise
- PHPdefine()的用法PHP
- SqlParameter的用法SQL
- Tcpdump 的用法TCP