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

資訊專欄INFORMATION COLUMN

javascript 面向?qū)ο蟀鎵K之定義多個(gè)對(duì)象屬性以及讀取屬性特性

wendux / 2614人閱讀

摘要:返回值是一個(gè)對(duì)象,如果是訪問器屬性,這個(gè)對(duì)象的屬性有和如果是數(shù)據(jù)屬性,這個(gè)對(duì)象的屬性有和。上一篇面向?qū)ο蟀鎵K之對(duì)象屬性下一篇面向?qū)ο蟀鎵K之創(chuàng)建對(duì)象

這是 javascript 面向?qū)ο蟀鎵K的第三篇文章,主要講解的是多個(gè)屬性的定義以及讀取屬性的特性。前面這幾章內(nèi)容目的在于加深對(duì)對(duì)象的理解,這樣可以利于理解后面的原型鏈以及繼承方面的知識(shí),或者你也可以了解一下不一樣的 javascript 對(duì)象屬性的定義。

定義多個(gè)屬性

在上一篇博客中已經(jīng)講解了定義一個(gè)屬性的方法,那就是 Object.defineProperty,那么在日常開發(fā)中如果要定義多個(gè)屬性呢,該使用什么樣的方法,其實(shí)可以聯(lián)想到使用 Object.defineProperties,對(duì),就是這個(gè)方法,ECMAScript 5 定義了 Object.defineProperties() 方法,利用這個(gè)方法可以通過描述符一次定義多個(gè)屬性。這個(gè)方法接收兩個(gè)對(duì)象參數(shù):第一個(gè)對(duì)象是要添加和修改其屬性的對(duì)象,第二個(gè)對(duì)象的屬性與第一個(gè)對(duì)象中要添加或修改的屬性一一對(duì)應(yīng)。例如:

var book = {};
Object.defineProperties(book, {
  _year: {
    value: 2017
  },
  edition: {
    value: 1,
    writable: true,
  },
  year: {
    get: function () {
      return this._year;
    },
    set: function (newVal) {
      if (newVal > this._year) {
        this.edition += newVal - this._year;
      }
    }
  }
})
book.year = 2018;
console.log(book.edition); // 2

以上代碼在 book 對(duì)象上定義了兩個(gè)數(shù)據(jù)屬性( _year 和 edition )和一個(gè)訪問器屬性( year ),這里的屬性都是在同一時(shí)間創(chuàng)建的。

一樣的,在調(diào)用 Object.defineProperties() 方法時(shí),如果不指定, configurable 、 enumerable 和writable 特性的默認(rèn)值都是 false 。
讀取屬性的特性

對(duì)于讀取屬性的特性可以使用 Object.getOwnPropertyDescriptor()方法,這個(gè)方法接收兩個(gè)參數(shù):屬性所在的對(duì)象和要讀取其描述符的屬性名稱。返回值是一個(gè)對(duì)象,如果是訪問器屬性,這個(gè)對(duì)象的屬性有 configurable 、 enumerable 、 get 和 set ;如果是數(shù)據(jù)屬性,這個(gè)對(duì)象的屬性有 configurable 、 enumerable 、 writable 和 value 。例如:

var book = {};
Object.defineProperties(book, {
  _year: {
    value: 2017
  },
  edition: {
    value: 1,
    writable: true,
  },
  year: {
    get: function () {
      return this._year;
    },
    set: function (newVal) {
      if (newVal > this._year) {
        this.edition += newVal - this._year;
      }
    }
  }
})

var descriptor1 = Object.getOwnPropertyDescriptor(book, "_year");
console.log(descriptor1.value); // 2017
console.log(descriptor1.configurable); // false
console.log(typeof descriptor1.get); // undefined

var descriptor2 = Object.getOwnPropertyDescriptor(book, "edition");
console.log(descriptor2.value); // 1
console.log(descriptor2.configurable); // false
console.log(descriptor2.writable); // true

var descriptor3 = Object.getOwnPropertyDescriptor(book, "year");
console.log(typeof descriptor3.value); // undefined
console.log(descriptor3.enumerable); // false
console.log(typeof descriptor3.get); // function
console.log(typeof descriptor3.set); // function

對(duì)于數(shù)據(jù)屬性 _year , value 等于最初的值, configurable 是 false ,而 get 等于 undefined 。對(duì)于訪問器屬性 year , value 等于 undefined , enumerable 是 false ,而 get 是一個(gè)指向 getter 函數(shù)的指針。

小結(jié)

這篇文章主要講解了定義多個(gè)屬性讀取屬性的特性,分別使用了 Object.defineProperties()Object.getOwnPropertyDescriptor()方法,了解了這種定義屬性和讀取屬性的方法之后,相信你對(duì)于對(duì)象會(huì)有更加深刻地理解。

上一篇:javascript 面向?qū)ο蟀鎵K之對(duì)象屬性

下一篇:javascript 面向?qū)ο蟀鎵K之創(chuàng)建對(duì)象

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

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

相關(guān)文章

  • javascript 面向對(duì)象版塊對(duì)象屬性

    摘要:上一篇面向?qū)ο蟀鎵K之理解對(duì)象下一篇面向?qū)ο蟀鎵K之定義多個(gè)對(duì)象屬性以及讀取屬性特性 這是 javascript 面向?qū)ο蟀鎵K的第二篇文章,主要講解的是對(duì)象的屬性,首先創(chuàng)建一個(gè)對(duì)象: var person = { name: Nicholas, age: 29, job: Software Engineer, sayName: function () { conso...

    lolomaco 評(píng)論0 收藏0
  • javascript 面向對(duì)象版塊理解對(duì)象

    摘要:用代碼可以這樣描述安全到達(dá)國外面向過程既然說了面向?qū)ο螅敲磁c之對(duì)應(yīng)的就是面向過程。小結(jié)在這篇文章中,介紹了什么是面向?qū)ο蠛兔嫦蜻^程,以及中對(duì)象的含義。 這是 javascript 面向?qū)ο蟀鎵K的第一篇文章,主要講解對(duì)面向?qū)ο笏枷氲囊粋€(gè)理解。先說說什么是對(duì)象,其實(shí)這個(gè)還真的不好說。我們可以把自己當(dāng)成一個(gè)對(duì)象,或者過年的時(shí)候相親,找對(duì)象,那么你未來的老婆也是一個(gè)對(duì)象。我們就要一些屬性,比...

    lovXin 評(píng)論0 收藏0
  • javascript面向對(duì)象總結(jié)

    摘要:之面向?qū)ο罂偨Y(jié)前言在中是沒有類的概念的,所以它的對(duì)象與基于類的語言中的對(duì)象不同。一理解對(duì)象張三上面通過構(gòu)造函數(shù)創(chuàng)建了一個(gè)對(duì)象,并為它添加了三個(gè)屬性。 JavaScript之面向?qū)ο罂偨Y(jié) 前言:在ECMAScript中是沒有類的概念的,所以它的對(duì)象與基于類的語言中的對(duì)象不同。ECMA-262把對(duì)象總結(jié)為:無序?qū)傩缘募希鋵傩园局怠?duì)象或者函數(shù)。 一、理解對(duì)象 var person...

    taowen 評(píng)論0 收藏0
  • JavaScript基礎(chǔ)學(xué)習(xí)——面向對(duì)象部分(屬性類型)

    摘要:今天結(jié)合高編第六章開始回顧和深入學(xué)習(xí)面向?qū)ο蟛糠职▽?duì)象原型原型鏈繼承等部分。二對(duì)象的屬性類型勾鑫宇,數(shù)據(jù)屬性訪問器屬性書上講到屬性類型時(shí),只是簡單提了一下是為了表示對(duì)象的特性,描述了屬性的特征,并且在中不能直接訪問。 前言 JavaScript發(fā)明之始,從技術(shù)上來講就是一門面向?qū)ο蟮恼Z言,但在ES6之前,JS的很多特性和傳統(tǒng)的面向?qū)ο笳Z言有所不同,比如沒有類的概念(ES6有了clas...

    microelec 評(píng)論0 收藏0
  • javascript面向對(duì)象創(chuàng)建對(duì)象

    摘要:表示能否修改屬性的值。對(duì)于直接在對(duì)象上定義的屬性,這個(gè)特性的默認(rèn)值為。默認(rèn)值為設(shè)置一個(gè)屬性的值會(huì)導(dǎo)致其他屬性的變化如果的有值,就不要對(duì)再設(shè)置屬性所在的對(duì)象要讀取其描述符的屬性名稱 對(duì)象定義 對(duì)象定義:無序?qū)傩缘募希鋵傩钥梢园局怠?duì)象或函數(shù) 對(duì)象就是 鍵值對(duì) 其中值可以是數(shù)據(jù)和函數(shù) 對(duì)象方法就是對(duì)象的屬性 不過這個(gè)屬性是函數(shù) var p = new Object() p....

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

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

0條評(píng)論

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