簡述凍結(jié)JS對象方法技術(shù)
冰封的美人——凍結(jié)JS對象
看到這個標(biāo)題你可能會很奇怪凍結(jié)JS對象,?。∮钟|碰到我的知識盲區(qū)了,那么首先來了解一下JS對象
JS對象
js對象是普通對象,鍵值對方式,且其屬性不加引號,表示方法如下,對象內(nèi)有對象屬性,對象方法和普通的對象概念相同
var obj = { name : "cxy", age : "18" }
而我們修改對象的屬性,僅僅需要obj.name = "juejin"
即可console.log(obj.name)
打印出來即可看到修改效果,那么凍結(jié)又是什么意思呢?我們來學(xué)習(xí)一下Object.freeze()
Object.freeze
翻譯下freeze的意思,由此得知freeze()
是用來凍結(jié)對象的方法,我們只需要將我們要凍結(jié)的目標(biāo)對象作為參數(shù)傳遞給他,那么該對象就會被凍結(jié)
const iceObj = Object.freeze(obj)
這樣iceObj
就是被凍結(jié)的對象,那么凍結(jié)又是什么概念呢?我們修改一下對象的age
屬性iceObj.age = "19"
,然后再打印一下console.log(iceObj.age)
我們會發(fā)現(xiàn),omygod,依舊是18,不愧是永遠(yuǎn)十八歲的冰封美人,除此之外還有一個檢驗(yàn)對象凍結(jié)的方法即Object.isFrozen
,返回值為布爾值
不可凍結(jié)的對象
又有新的問題了,難不成所有的對象都可以被凍結(jié)嗎?nonono,Object.freeze()
不可凍結(jié)嵌套對象,依舊是那個對象,但是有一個son屬性本身又是一個對象
var obj = { name : "cxy", age : "18" son : { name : "son", age : "1" } }
我們來修改并打印一下son中的name屬性,會發(fā)現(xiàn)其屬性值是修改后的值,所以說Object.freeze()
并不是所有對象都能凍住的,當(dāng)然其object.freeze()
還可以凍結(jié)數(shù)組,大家可以定義一個數(shù)組,凍結(jié)之后,使用下標(biāo)修改看看效果如何,除此之外還有一共凍結(jié)方法即object.seal()
它和object.freeze()
有差別,我們來看一下
Object.seal
var obj = { name : "cxy", age : "18" } const iceObj = Object.seal(obj) iceObj.name = "juejin" delete iceObj.age console.log(iceObj)
依舊是那個對象,我們先使用object.seal()
凍結(jié)再執(zhí)行修改name屬性,刪除age屬性的操作,最后打印我們會發(fā)現(xiàn)name屬性成功被修改,但是age屬性沒有被刪除,這就是和freeze()
不一樣的地方,即可以修改屬性值,但是不可以刪除屬性值,當(dāng)然同樣它還有一個檢驗(yàn)對象凍結(jié)的方法即Object.isSealed
,返回值為布爾值,最后還有一種凍結(jié)的方法即Object.preventExtensions()
Object.preventExtensions
Object.preventExtensions
是凍結(jié)對象增加屬性的能力
var obj = { name : "cxy", age : "18" } const iceObj = Object.preventExtensions(obj) iceObj.weight = "180" console.log(iceObj)
上述代碼是為obj新增weight屬性,但是打印出來后并沒有出現(xiàn)該屬性,說明對象添加屬性方法被凍結(jié)了。
到此這篇關(guān)于簡述凍結(jié)JS對象方法技術(shù)的文章就介紹到這了,更多相關(guān)凍結(jié)JS對象內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript出現(xiàn)setTimeout倒計時誤差的原因分析
setTimeout?倒計時誤差的出現(xiàn)主要與?JavaScript?的事件循環(huán)機(jī)制和計時器的執(zhí)行方式有關(guān),本文就來和大家講講具體出現(xiàn)的原因以及解決方法,需要的可以參考一下2023-06-06JavaScript 中的運(yùn)算符和表達(dá)式介紹
這篇文章主要介紹了JavaScript 中的運(yùn)算符和表達(dá)式介紹,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09JS實(shí)現(xiàn)表單全選以及取消全選實(shí)例
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)表單全選以及取消全選實(shí)例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03JavaScript中window.showModalDialog()用法詳解
這篇文章主要介紹了JavaScript中window.showModalDialog()用法詳解,需要的朋友可以參考下2014-12-12JS對象轉(zhuǎn)換為Jquery對象實(shí)現(xiàn)代碼
很多新手朋友們都不知道js對象如何轉(zhuǎn)換為jquery對象,其實(shí)很簡單,下面有個不錯的示例,感興趣的朋友可以參考下2013-12-12JS小功能(列表頁面隔行變色)簡單實(shí)現(xiàn)
這篇文章主要介紹了JS列表頁面隔行變色簡單實(shí)現(xiàn),有需要的朋友可以參考一下2013-11-11