海詩網(wǎng) 知識(shí)百科 object.defineproperty()(object.defineproperty())

object.defineproperty()(object.defineproperty())

object.defineproperty, 什么是object.defineproperty()?不知道小伙伴們今天來看看邊肖的分享吧!

一、Object.defineProperty()的定義:

Object.defineProperty()將直接在對象上定義新的屬性,或者修改對象的現(xiàn)有屬性并返回該對象。

第二,和的區(qū)別。運(yùn)算符或[]運(yùn)算符:

Object.defineProperty()可以更深入地定義一個(gè)對象。它不僅可以操縱屬性的值,還可以修改屬性的一些屬性,比如是否可以修改。當(dāng)然,值也是屬性之一。

三、Object.defineProperty(obj,prop,descriptor)接受3個(gè)參數(shù):

要操作的對象。

屬性:要操作的屬性。

Descriptor: Descriptor object. It contains six attributes: configurable, enumerable, writable, value, acquisition and setting.

注意:

此方法應(yīng)直接在對象構(gòu)造函數(shù)對象上調(diào)用,而不是在對象類型的任何實(shí)例上調(diào)用。

object.defineproperty()

四、屬性類型:

1.數(shù)據(jù)屬性

數(shù)據(jù)屬性包含數(shù)據(jù)值的位置。在這個(gè)位置可以讀寫值。

數(shù)據(jù)屬性有四個(gè)描述其行為的特征:

可配置:是否可以通過delete刪除屬性,是否可以修改attribute屬性(注意是屬性),是否可以修改為accessor屬性。默認(rèn)值為true。

可枚舉:該屬性是否可以被for-in遍歷,默認(rèn)為true。

可寫:屬性值是否可以修改,默認(rèn)為真。

值:該屬性的數(shù)據(jù)值。讀取屬性值時(shí),從這里讀?。粚懭雽傩灾禃r(shí),將新值保存在此位置。默認(rèn)值是未定義的。

例如:

let person={}

Person.name //Add a data attribute to people, which is configurable, enumerable and writable. It is true by default.

The value is undefinedperson.name=a//value property is set to a.

如果將configurable設(shè)置為false,則除了value和writable之外,其他屬性都不能修改(而且它本身也不能更改為true)。如果修改被忽略,嚴(yán)格模式將給出一個(gè)錯(cuò)誤。

當(dāng)configurable為false時(shí),writeable為true,并且可以修改為false。如果writeable為false,對true的修改也將被忽略,并且嚴(yán)格模式將給出一個(gè)錯(cuò)誤。

Object.defineProperty(person,name,{ configurable:false })對象。定義屬性(人員,姓名,{ value:b })控制臺(tái)。日志(人。名稱)//b可配置為假的,

person.name=c //errorObject.defineProperty(person, name, { writable: true}) //error

object.defineproperty()

2.訪問者屬性

訪問器屬性不包含數(shù)據(jù)值,但包含一對getter和setter函數(shù)(它們不需要同時(shí)存在)。訪問器屬性必須通過Object.defineProperty定義。訪問器屬性具有以下四個(gè)特征:

可配置:屬性是否可以通過刪除刪除,屬性特征(注意是特征)是否可以修改,是否可以修改為數(shù)據(jù)屬性。默認(rèn)值為true。

可枚舉:該屬性是否可以被for-in遍歷,默認(rèn)為true。

Get:讀取屬性時(shí)調(diào)用的函數(shù)。默認(rèn)值是未定義的

Set:寫入屬性時(shí)調(diào)用的函數(shù)。默認(rèn)值是未定義的。

五、數(shù)據(jù)屬性和訪問器屬性的轉(zhuǎn)換:

數(shù)據(jù)屬性-訪問者屬性

將get或Set屬性設(shè)置為data屬性,value和可寫屬性將被丟棄,該屬性將成為訪問器屬性。

訪問者屬性-數(shù)據(jù)屬性

將value或writable屬性設(shè)置為accessor屬性,get和Set屬性將被丟棄,該屬性將成為數(shù)據(jù)屬性。

注意:只有當(dāng)configurable為true時(shí),您才能相互轉(zhuǎn)換,即使當(dāng)數(shù)據(jù)屬性中的configurable為false時(shí),您可以修改value或writable。

不能通過僅設(shè)置值或可寫來更改數(shù)據(jù)屬性的訪問器屬性。

object.defineproperty,以上就是本文為您收集整理的object.defineproperty最新內(nèi)容,希望能幫到您!更多相關(guān)內(nèi)容歡迎關(guān)注。

本文來自網(wǎng)絡(luò),不代表海詩網(wǎng)立場,轉(zhuǎn)載請注明出處:http://x91880.com/n/168805.html
      

jsonobject.parseobject(jsonobject.parseobject)

發(fā)表回復(fù)
聯(lián)系我們
聯(lián)系我們

在線咨詢: QQ交談

郵箱: 3587015498@qq.com

工作時(shí)間:周一至周五,9:00-17:30,節(jié)假日休息

關(guān)注微信
微信掃一掃關(guān)注我們
微信掃一掃關(guān)注我們
關(guān)注微博
返回頂部