亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

js中對(duì)象屬性的整理

lavor / 368人閱讀

摘要:不管函數(shù)還是數(shù)據(jù),都可以稱為某某對(duì)象的屬性。一些細(xì)節(jié)輸出結(jié)果如下可以看出,函數(shù)是有的數(shù)據(jù)屬性是創(chuàng)建對(duì)象時(shí)定義的,所有屬性特性都是是用定義的,默認(rèn)為數(shù)據(jù)屬性,所有屬性特性默認(rèn)為。訪問器屬性暫時(shí)想到的,就是通過改變?cè)搶傩愿淖儍?nèi)部多個(gè)屬性。

都知道js是面向?qū)ο蟮?,?chuàng)建了對(duì)象后,對(duì)象中保存的就是一組組名值對(duì),值可以是數(shù)據(jù)類型或函數(shù)。不管函數(shù)還是數(shù)據(jù),都可以稱為某某對(duì)象的屬性。再細(xì)分,屬性可以有兩個(gè)類型:數(shù)據(jù)屬性或訪問器屬性。
因此,數(shù)據(jù)屬性不要誤解為是數(shù)據(jù)的屬性類型,函數(shù)的屬性類型也是數(shù)據(jù)屬性的。

var obj = {say:function(){return this.name;},age:11};
console.log(Object.getOwnPropertyDescriptors(obj));
//輸出{value: ?, writable: true, enumerable: true, configurable: true}

數(shù)據(jù)屬性(4個(gè)):
value: 大家熟知的一樣,保存的是數(shù)據(jù)值,如果是函數(shù),保留的就是整個(gè)函數(shù)。
writable: 是否可修改,設(shè)置為false可以巧妙定義出"私有變量"。true表示可修改,false則相反。
enumerable: 該屬性是否可被枚舉出。true表示可枚舉,false則相反。
configurable: delete屬性有沒有用,能否修改value和enumerable屬性,能否把屬性改為訪問器屬性。true就是都可以,false就是都不可以。
訪問器屬性(4個(gè)):
configurable:同上
enumerable: 同上
get:一個(gè)用于訪問其他屬性值的函數(shù)
set:一個(gè)用于修改其他屬性值的函數(shù)

對(duì)于這些屬性類型,可以修改,用defineProperty()或defineProperties();可以讀取,用getOwnPropertyDescriptor()或getOwnPropertyDescriptors()。當(dāng)然,訪問器屬性只能用defineProperty()或defineProperties()創(chuàng)建。
一些細(xì)節(jié):

var obj = {say:function(){return this.name;},age:11};
Object.defineProperty(obj,"name",{});
console.log(Object.getOwnPropertyDescriptors(obj));
//輸出結(jié)果如下:
//age:{value: 11, writable: true, enumerable: true, configurable: true}
//name:{value: undefined, writable: false, enumerable: false, configurable: false}
//say:{value: ?, writable: true, enumerable: true, configurable: true}

可以看出,函數(shù)say是有value的數(shù)據(jù)屬性;age是創(chuàng)建對(duì)象時(shí)定義的,所有屬性特性都是true;name是用defineProperty()定義的,默認(rèn)為數(shù)據(jù)屬性,所有屬性特性默認(rèn)為false。

var obj = {age:11};
Object.defineProperty(obj,"age",{
    configurable:false
});
Object.defineProperty(obj,"age",{
    writable:false,
    // enumerable:false,   會(huì)報(bào)錯(cuò)
    // configurable:true,  會(huì)報(bào)錯(cuò)
    value:12
});
Object.defineProperty(obj,"name",{
    configurable:false,     //如果不指定,默認(rèn)也都是false
    value:2
});
Object.defineProperty(obj,"name",{
    // writable:false,     會(huì)報(bào)錯(cuò)
    // enumerable:false,   會(huì)報(bào)錯(cuò)
    // configurable:true,  會(huì)報(bào)錯(cuò)
    // value:12            會(huì)報(bào)錯(cuò)
});

創(chuàng)建時(shí)定義的屬性:修改了configurable后,其實(shí)還是可以修改writable和value屬性的。
defineProperty()定義的屬性:configurable一旦是false,以后就不可能在更改任何屬性。

訪問器屬性暫時(shí)想到的,就是通過改變?cè)搶傩愿淖儍?nèi)部多個(gè)屬性。而且,如果某屬性writable是false,訪問器屬性改變?cè)搶傩詴?huì)無效。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/93131.html

相關(guān)文章

  • 前端面試知識(shí)點(diǎn)目錄整理

    摘要:寫在前面金三銀四又到了一年一度的跳槽季相信大家都在準(zhǔn)備自己面試筆記我也針對(duì)自己工作中所掌握或了解的一些東西做了一個(gè)目錄總結(jié)方便自己復(fù)習(xí)詳細(xì)內(nèi)容會(huì)在之后一一對(duì)應(yīng)地補(bǔ)充上去有些在我的個(gè)人主頁筆記中也有相關(guān)記錄這里暫且放一個(gè)我的面試知識(shí)點(diǎn)目錄大家 寫在前面: 金三銀四, 又到了一年一度的跳槽季, 相信大家都在準(zhǔn)備自己面試筆記, 我也針對(duì)自己工作中所掌握或了解的一些東西做了一個(gè)目錄總結(jié),方便自...

    xzavier 評(píng)論0 收藏0
  • 前端面試知識(shí)點(diǎn)目錄整理

    摘要:寫在前面金三銀四又到了一年一度的跳槽季相信大家都在準(zhǔn)備自己面試筆記我也針對(duì)自己工作中所掌握或了解的一些東西做了一個(gè)目錄總結(jié)方便自己復(fù)習(xí)詳細(xì)內(nèi)容會(huì)在之后一一對(duì)應(yīng)地補(bǔ)充上去有些在我的個(gè)人主頁筆記中也有相關(guān)記錄這里暫且放一個(gè)我的面試知識(shí)點(diǎn)目錄大家 寫在前面: 金三銀四, 又到了一年一度的跳槽季, 相信大家都在準(zhǔn)備自己面試筆記, 我也針對(duì)自己工作中所掌握或了解的一些東西做了一個(gè)目錄總結(jié),方便自...

    enda 評(píng)論0 收藏0
  • 前端面試之路二(javaScript基礎(chǔ)整理)

    摘要:在標(biāo)簽中添加屬性,本質(zhì)上是跟在標(biāo)簽里面寫屬性時(shí)一樣的,所以屬性值最終都會(huì)編譯為字符串類型。這個(gè)節(jié)點(diǎn)包括很多,比如,以及一些方法等方法。一個(gè)對(duì)象有很多,該集合名字為,里面有其他以及,里面有很多。 一、變量類型和計(jì)算 JS中使用typeof能得到哪些類型 變量類型 值類型:變量本身就是含有賦予給它的數(shù)值的,它的變量本身及保存的數(shù)據(jù)都存儲(chǔ)在棧的內(nèi)存塊當(dāng)中 引用類型:引用類型當(dāng)然是分配到...

    AbnerMing 評(píng)論0 收藏0
  • js 部分學(xué)習(xí)整理

    摘要:每一個(gè)函數(shù)都有一個(gè)屬性,而這個(gè)屬性也是一個(gè)對(duì)象,就叫做原型對(duì)象,對(duì)象里有一個(gè)屬性指向了函數(shù)。所以給原型添加一個(gè)屬性,對(duì)象也會(huì)有這個(gè)屬性。 js要掌握的東西。原型 閉包聲明提升基本數(shù)據(jù)類型高階函數(shù)JSONJSONP 跨域 iframe 通信Ajax原生DOM操作(比如 逆序DOM節(jié)點(diǎn))事件捕捉,捕獲,冒泡,代理Array常用函數(shù)String常用函數(shù)ES5 + ES6VUE框架部分(大部分...

    SimpleTriangle 評(píng)論0 收藏0
  • js 零碎知識(shí)整理

    摘要:,看了這樣的解釋,或許讓你更摸不著頭腦了。彈出彈出在這個(gè)例子中,只要會(huì)使用瀏覽器的朋友,都能看得出來完全繼承了的屬性和方法,否則是無法解釋的,因?yàn)樵谥胁]有定義屬性和,那么按常理推斷在的實(shí)例對(duì)象中,并不會(huì)出現(xiàn)這兩個(gè)屬性。 快速刪除尾部數(shù)組 var arr=[1,2,3,4,5]; arr.length=3; console.log(arr)//[1,2,3] 直接改變數(shù)組的length...

    liaorio 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<