欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript中的對象的extensible屬性介紹

 更新時(shí)間:2014年12月30日 09:22:13   投稿:junjie  
這篇文章主要介紹了JavaScript中的對象的extensible屬性介紹,JavaScript中,對象的extensible屬性用于表示是否允許在對象中動態(tài)添加新的property,需要的朋友可以參考下

JavaScript中,對象的extensible屬性用于表示是否允許在對象中動態(tài)添加新的property。ECMAScript 3標(biāo)準(zhǔn)中,所有的對象都是extensible的。ECMAScript 5標(biāo)準(zhǔn)中,所有的對象默認(rèn)仍是extensible的,但可以通過設(shè)定來改變這一屬性。

查詢一個(gè)對象是否是extensible的,可以使用Object.isExtensible()語句:


復(fù)制代碼 代碼如下:

var o = {x:1};
console.log(Object.isExtensible(o));//true


使一個(gè)對象變成不是extensible的,可以使用Object.preventExtensions()語句:


復(fù)制代碼 代碼如下:

Object.preventExtensions(o)
console.log(Object.isExtensible(o));//false


值得注意的是,由于沒有Object.preventExtensions()的反操作語句,因此一旦某個(gè)對象被設(shè)定為非extensible后,將沒有辦法重新再將其設(shè)定為extensible。

Object.preventExtensions()語句作用的范圍是對象自身,原型對象不受影響。如果某個(gè)對象被設(shè)定為非extensible,那么其原型對象中依然可以動態(tài)添加property,而這些動態(tài)添加的property也依然可以被對象繼承到。

Object.seal()和Object.freeze()

Object.preventExtensions()可以防止在對象中動態(tài)添加新的property。除了這個(gè)操作,JavaScript中還存在另外兩個(gè)更加嚴(yán)格的操作來保護(hù)對象:Object.seal()和Object.freeze()。

Object.seal()的作用是在Object.preventExtensions()的基礎(chǔ)上,設(shè)定所有對象自身property的configurable屬性為false。與Object.preventExtensions()操作一樣,Object.seal()沒有反操作,因此一旦將對象seal了之后將無法恢復(fù)其狀態(tài)。在JavaScript中,可以通過Object.isSealed()來查詢某個(gè)對象是否被seal了。

Object.freeze()的作用是在Object.seal()的基礎(chǔ)上,將所有對象自身的property設(shè)定為只讀。與Object.seal()和Object.preventExtensions()操作一樣,Object.freeze()沒有反操作,因此一旦將對象freeze了之后將無法恢復(fù)其狀態(tài)。在JavaScript中,可以通過Object.isFrozen()來查詢某個(gè)對象是否被freeze了。


復(fù)制代碼 代碼如下:

console.log(Object.isSealed(o));//false
Object.seal(o);
console.log(Object.isSealed(o));//true
console.log(Object.isFrozen(o));//false
Object.freeze(o);
console.log(Object.isFrozen(o));//true


無論是Object.preventExtensions(),還是Object.seal()和Object.freeze(),其作用范圍均為對象自身,對象的原型對象將不受影響。

相關(guān)文章

  • js 瀏覽器事件介紹

    js 瀏覽器事件介紹

    瀏覽器事件指載入文檔直到該文檔被關(guān)閉期間的瀏覽器事件,如瀏覽器載入文檔事件onload、關(guān)閉該文檔事件onunload、瀏覽器失去焦點(diǎn)事件onblur、獲得焦點(diǎn)事件onfocus 等
    2012-03-03
  • js清除瀏覽器緩存的幾種方法

    js清除瀏覽器緩存的幾種方法

    本文主要介紹了js清除瀏覽器緩存的幾種方法,具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-03-03
  • js中點(diǎn)擊空白區(qū)域時(shí)文本框與隱藏層的顯示與影藏問題

    js中點(diǎn)擊空白區(qū)域時(shí)文本框與隱藏層的顯示與影藏問題

    文本框獲得焦點(diǎn)的時(shí)在文本框的下方顯示一個(gè)浮動層,點(diǎn)擊文本框隱藏浮動層,下面為大家介紹下鼠標(biāo)點(diǎn)擊時(shí)文本框與隱藏層處理問題,感興趣的朋友可以參考下
    2013-08-08
  • JavaScript設(shè)計(jì)模式組合設(shè)計(jì)模式案例

    JavaScript設(shè)計(jì)模式組合設(shè)計(jì)模式案例

    這篇文章主要介紹了JavaScript設(shè)計(jì)模式組合設(shè)計(jì)模式案例,組合設(shè)計(jì)模式是用于將多個(gè)部分通過組合的方式行成一個(gè)整體,更多相關(guān)內(nèi)容需要的小伙伴可以參考一下
    2022-06-06
  • 潛說js對象和數(shù)組

    潛說js對象和數(shù)組

    潛說js對象和數(shù)組 對象是一個(gè)無序?qū)傩约? 每個(gè)屬性都有自己的名字和值
    2011-05-05
  • javascript事件委托的用法及其好處簡析

    javascript事件委托的用法及其好處簡析

    這篇文章主要為大家詳細(xì)介紹了javascript事件委托的用法及其好處,感興趣的朋友可以參考一下
    2016-04-04
  • js/jquery控制頁面動態(tài)加載數(shù)據(jù) 滑動滾動條自動加載事件的方法

    js/jquery控制頁面動態(tài)加載數(shù)據(jù) 滑動滾動條自動加載事件的方法

    下面小編就為大家?guī)硪黄猨s/jquery控制頁面動態(tài)加載數(shù)據(jù) 滑動滾動條自動加載事件的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-02-02
  • 微信小程序中吸底按鈕適配iPhone X方案

    微信小程序中吸底按鈕適配iPhone X方案

    這篇文章主要介紹了微信小程序中吸底按鈕適配iPhone X方案,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-11-11
  • JS觸摸與手勢事件詳解

    JS觸摸與手勢事件詳解

    這篇文章主要為大家詳細(xì)介紹了JS觸摸與手勢事件的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • JavaScript 中使用 Generator的方法

    JavaScript 中使用 Generator的方法

    Generator 是一種非常強(qiáng)力的語法,但它的使用并不廣泛。這篇文章主要介紹了如何在 JavaScript 中使用 Generator,需要的朋友可以參考下
    2017-12-12

最新評論