国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JavaScript 中 Object.defineProperty 的使用

mcterry / 2701人閱讀

摘要:一旦目標(biāo)對(duì)象訪問該屬性,就會(huì)調(diào)用這個(gè)方法,并返回結(jié)果。如果為,則任何嘗試刪除目標(biāo)屬性或修改屬性以下特性的行為將被無效化,默認(rèn)為。語法參數(shù)目標(biāo)對(duì)象要為目標(biāo)對(duì)象添加的屬性,其中和分別代表中的第二和第三個(gè)參數(shù)。

Object.defineProperty

The Object.defineProperty() method defines a new property directly on an object, or modifies an existing property on an object, and returns the object.

直接在一個(gè)對(duì)象上定義一個(gè)新的屬性,或修改一個(gè)已經(jīng)存在的屬性。這個(gè)方法會(huì)返回該對(duì)象。

語法

Object.defineProperty(obj, prop, descriptor)

參數(shù)

Object obj 目標(biāo)對(duì)象

String prop 需要定義的屬性

Object descriptor 該屬性擁有的特性,可設(shè)置的值有:

value 屬性的值,默認(rèn)為 undefined

writable 該屬性是否可寫,如果設(shè)置成 false,則任何對(duì)該屬性改寫的操作都無效(但不會(huì)報(bào)錯(cuò)),默認(rèn)為 false

get 一旦目標(biāo)對(duì)象訪問該屬性,就會(huì)調(diào)用這個(gè)方法,并返回結(jié)果。默認(rèn)為 undefined

set 一旦目標(biāo)對(duì)象設(shè)置該屬性,就會(huì)調(diào)用這個(gè)方法。默認(rèn)為 undeinfed

configurable 如果為false,則任何嘗試刪除目標(biāo)屬性或修改屬性以下特性(writable, configurable, enumerable)的行為將被無效化,默認(rèn)為 false

enumerable 是否能在for...in循環(huán)中遍歷出來或在Object.keys中列舉出來。默認(rèn)為 false

注意

descriptor 中不能同時(shí)設(shè)置訪問器 (getset) 和 wriablevalue,否則會(huì)報(bào)以下錯(cuò)誤:

Invalid property.  A property cannot both have accessors and be writable or have a value
實(shí)際應(yīng)用

我們知道,在 Express.js 升級(jí)到 4.0 之后,它把很多功能從核心庫中移除了。當(dāng)我們?cè)L問那些被移除的屬性時(shí),它會(huì)報(bào)錯(cuò),告訴我們?cè)搶傩砸呀?jīng)被移除了。這個(gè)功能就是通過 Object.defineProperty 來實(shí)現(xiàn)的。看看源碼吧:

[
  "json",
  "urlencoded",
  "bodyParser",
  "compress",
  "cookieSession",
  "session",
  "logger",
  "cookieParser",
  "favicon",
  "responseTime",
  "errorHandler",
  "timeout",
  "methodOverride",
  "vhost",
  "csrf",
  "directory",
  "limit",
  "multipart",
  "staticCache",
].forEach(function (name) {
  Object.defineProperty(exports, name, {
    get: function () {
      throw new Error("Most middleware (like " + name + ") is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#middleware.");
    },
    configurable: true
  });
});
Object.defineProperties

The Object.defineProperties() method defines new or modifies existing properties directly on an object, returning the object.

Object.defineProperty 類似,只不過這個(gè)方法可以設(shè)置多個(gè)屬性。

語法

Object.defineProperties(obj, props)

參數(shù)

Object obj 目標(biāo)對(duì)象

Object props 要為目標(biāo)對(duì)象添加的屬性,其中 keyvalue 分別代表 Object.defineProperty 中的第二和第三個(gè)參數(shù)。

出處

https://scarletsky.github.io/2015/08/18/Object-learning-in-javascript/

參考資料

http://www.cnblogs.com/rubylouvre/archive/2010/09/19/1831128.html
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object
https://github.com/strongloop/express/blob/master/lib/express.js

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/85889.html

相關(guān)文章

  • 詳解JavaScript之神奇Object.defineProperty

    摘要:與當(dāng)與同時(shí)為時(shí),屬性不能重新使用定義,嚴(yán)格模式下會(huì)報(bào)錯(cuò)示例云麒報(bào)錯(cuò)當(dāng)或者為時(shí),屬性可以重新使用定義,這一點(diǎn)讀者不妨自行測試。 摘要: JavaScript有個(gè)很神奇的Object.defineProperty(),了解一下? =與Object.defineProperty 為JavaScript對(duì)象新增或者修改屬性,有兩種不同方式:直接使用=賦值或者使用Object.definePro...

    baishancloud 評(píng)論0 收藏0
  • JavaScript深入理解對(duì)象方法——Object.defineProperty()

    摘要:返回值被傳遞給函數(shù)的對(duì)象。描述該方法允許精確添加或修改對(duì)象的屬性。描述符必須是兩種形式之一不能同時(shí)是兩者。可以是任何有效的值數(shù)值,對(duì)象,函數(shù)等。該方法返回值被用作屬性值。該方法將接受唯一參數(shù),并將該參數(shù)的新值分配給該屬性。 Object.defineProperties() Object.defineProperty() 方法會(huì)直接在一個(gè)對(duì)象上定義一個(gè)新屬性,或者修改一個(gè)對(duì)象的現(xiàn)有屬性...

    woshicixide 評(píng)論0 收藏0
  • JavaScript Object.defineProperty 用法

    摘要:默認(rèn)為,表示不能被枚舉,和中無法枚舉該屬性,對(duì)也有影響。表示對(duì)象屬性是否可以被刪除,以及除和特性外的其它特性能否被修改。寬松模式中,給只讀屬性賦值不會(huì)生效。 在 JavaScript 中,常通過下面方式,添加或修改對(duì)象的屬性: obj.name = John 除此之外,還能通過 Object.defineProperty() 方法,添加或修改對(duì)象的屬性。更重要的是,除了目標(biāo)對(duì)象 obj...

    VEIGHTZ 評(píng)論0 收藏0
  • 理解JavaScriptObject.defineProperty()函數(shù)

    摘要:理解的函數(shù)在進(jìn)入今天的內(nèi)容之前我們可以先考慮這么一個(gè)場景在你的項(xiàng)目中你有這么一個(gè)對(duì)象如下所示我們的要求就是你要給添加一個(gè)屬性當(dāng)?shù)幕蛘甙l(fā)生變化的時(shí)候也要隨之變化而且當(dāng)我們?cè)O(shè)置了的值的時(shí)候那么相應(yīng)的它的和也隨之發(fā)生變化那么我們應(yīng)該怎么做呢如果你 理解JavaScript的Object.defineProperty()函數(shù) 在進(jìn)入今天的內(nèi)容之前,我們可以先考慮這么一個(gè)場景,在你的項(xiàng)目中你有這...

    ninefive 評(píng)論0 收藏0
  • javascript高級(jí)程序設(shè)計(jì)》筆記:對(duì)象數(shù)據(jù)屬性和訪問器屬性

    摘要:枚舉對(duì)象的屬性第二種情況設(shè)置為,可以被枚舉。內(nèi)置對(duì)象訪問器屬性方法介紹摘自方法返回指定對(duì)象上一個(gè)自有屬性對(duì)應(yīng)的屬性描述符。對(duì)象中存在的屬性描述符主要有數(shù)據(jù)描述符和訪問器描述符兩種返回傳遞給函數(shù)的對(duì)象參考中的 1. 什么是對(duì)象 對(duì)象是無序?qū)傩缘募?創(chuàng)建自定義對(duì)象最簡單的方式就是以字面量的形式創(chuàng)建對(duì)象(或創(chuàng)建一個(gè)Object實(shí)例),然后再為它添加屬性和方法,如下所示: var perso...

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

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

0條評(píng)論

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