JS 基礎 物件凍結

2021-09-11 09:32:22 字數 1112 閱讀 5824

很多人看vue 2.*版本原始碼的時候也會注意到頻繁出現的object.freeze()

本文我們通過學習檢視 mdn 的介紹做了一下個人總結並分享出來,如果會的同學就可以直接忽略。

凍結乙個物件

凍結:不能向這個物件新增新的屬性

不能修改其已有屬性的值

不能刪除已有屬性

不能修改該物件已有屬性的可列舉性、可配置性、可寫性

-- 這個物件永遠是不可變的。該方法返回被凍結的物件。

object.freeze(obj)

obj => 將要被凍結的物件

被凍結的物件

凍結物件的所有自身屬性都不可能以任何方式被修改

資料屬性的值不可更改,訪問器屬性(有getter和setter)也同樣(但由於是函式呼叫,給人的錯覺是還是可以修改這個屬性)。

如果乙個屬性的值是個物件,則這個物件中的屬性是可以修改的,除非它也是個凍結物件。

var ddfe = ;

// 正常情況,可以操作物件的屬性

ddfe.from = "beijin";

delete ddfe.from複製**

var o = object.freeze(ddfe);

// 判斷是否被凍結,這裡返回 true

console.log(object.isfrozen(o));

// 靜默失敗,obj 沒有改變

obj.like = "ios";複製**

參考:

developer.mozilla.org/zh-cn/docs/…

developer.mozilla.org/zh-cn/docs/…

歡迎關注ddfe

js防篡改物件之凍結物件

const person object.defineproperty person,job set function newvalue console.log object.isfrozen person false 使用object.freeze 將物件修改為凍結物件,凍結物件即無法擴充套件,又是...

JS基礎 (1) 變數提公升與凍結

1.變數提公升 使用var定義的 會把宣告放到前面去,賦值保留在原位 var name dun function show console.log name undefined console.log name dun show 為什麼出現這樣的情況,是因為js 在執行之前會通過解析器解析一遍。在解...

js基礎 物件

物件 1.包括屬性和方法,屬性是事物特徵,方法是事物行為。比如手機的尺寸 顏色 重量為屬性 打 發資訊 瀏覽網頁 打遊戲是手機的方法。2.建立物件的三種方法 1 字面量 var obj console.log obj.name console.log obj obj.sayhi 字面量建立物件 va...