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

資訊專欄INFORMATION COLUMN

對(duì)象的三個(gè)屬性

XUI / 2259人閱讀

摘要:通過創(chuàng)建的對(duì)象使用構(gòu)造函數(shù)的屬性作為它們的原型。通過內(nèi)置構(gòu)造函數(shù)比如和創(chuàng)建的對(duì)象包含類屬性,它與構(gòu)造函數(shù)名稱相匹配。這是客戶端宿主對(duì)象定義一個(gè)自定義構(gòu)造函數(shù)可擴(kuò)展性對(duì)象的可擴(kuò)展性表示是否可以給對(duì)象添加新屬性。

對(duì)象的三個(gè)屬性

每個(gè)對(duì)象都擁有三個(gè)特性(屬性)(object attribute):

對(duì)象的原型(prototype)。指向另外一個(gè)對(duì)象,本對(duì)象的屬性繼承自它的原型對(duì)象。

對(duì)象的類(class)。是一個(gè)表示對(duì)象類型的字符串。

對(duì)象的擴(kuò)展標(biāo)記(extensible flag)。指明了(在ES5中)是否可以向該對(duì)象添加新屬性。

原型屬性

【01】對(duì)象的原型屬性是用來繼承屬性的。

【02】我們經(jīng)常把“對(duì)象的原型屬性”直接叫做“對(duì)象的原型”。

【03】原型屬性是在對(duì)象創(chuàng)建之初就設(shè)置好的。

通過對(duì)象直接量創(chuàng)建的對(duì)象使用Object.prototype作為它們的原型。

通過new創(chuàng)建的對(duì)象使用構(gòu)造函數(shù)的prototype屬性作為它們的原型。

通過Object.create()創(chuàng)建的對(duì)象使用第一個(gè)參數(shù)(也可以是null)作為它們的原型。

【04】在ES5中,Object.getPrototypeOf(obj)可以查詢它的原型。

并不能直接通過對(duì)象實(shí)例.prototype屬性的形式訪問到對(duì)象的原型。

不能在對(duì)象實(shí)例的prototype上添加屬性和方法。

比如:

類屬性

【01】ES3和ES5都未提供設(shè)置這個(gè)屬性的方法,并只有一種間接的方法可以查詢它。

【02】要想獲得對(duì)象的類,可以調(diào)用對(duì)象的toString()方法,然后提取已返回字符串的第8個(gè)到倒數(shù)第二個(gè)位置之間的字符。

默認(rèn)的toString()方法(繼承自O(shè)bject.prototype)返回了如下這種格式的字符串:

[object class]

很多對(duì)象繼承的toString()方法重寫了,為了能調(diào)用正確的toString()版本,必須間接地調(diào)用Function.call()方法。

【03】

通過內(nèi)置構(gòu)造函數(shù)(比如Array和Date)創(chuàng)建的對(duì)象包含“類屬性”(class attribute),它與構(gòu)造函數(shù)名稱相匹配。(疑惑)

宿主對(duì)象也包含有意義的“類屬性”,但這和具體的JS實(shí)現(xiàn)有關(guān)。

對(duì)象的4種創(chuàng)建方式創(chuàng)建的對(duì)象的類屬性都是“Object”。

【04】classof()函數(shù),可以返回任何類型任意對(duì)象的類:

function classof(o) {
    if (o === null) return "Null";
    if (o === undefined) return "Undefined";
    return Object.prototype.toString.call(o).slice(8,-1);
}

數(shù)字、字符串和布爾值可以直接調(diào)用toString()方法,就和對(duì)象調(diào)用toString()方法一樣

這些類型的變量調(diào)用toString()方法,而不是通過它們的直接量調(diào)用toString(),比如1.toString()是不對(duì)的,而是要先聲明變量var a=1;然后調(diào)用a.toString()。

classof(null)           // => "Null"
classof(1)              // => "Number"
classof("")             // => "String"
classof(false)          // => "Boolean"
classof({})             // => "Object"
classof([])             // => "Array"
classof(/./)            // => "Regexp"
classof(new Date())     // => "Date"
classof(window)         // => "Window"(這是客戶端宿主對(duì)象)
function f() {};        // 定義一個(gè)自定義構(gòu)造函數(shù)
classof(new f());       // => "Object"
可擴(kuò)展性

【01】對(duì)象的可擴(kuò)展性表示是否可以給對(duì)象添加新屬性。

可擴(kuò)展屬性的目的是將對(duì)象“鎖定”,以避免外界的干擾。

【02】所有內(nèi)置對(duì)象和自定義對(duì)象都是顯式可擴(kuò)展的,除非將它們轉(zhuǎn)換為不可擴(kuò)展的,宿主對(duì)象(BOM,DOM)的可擴(kuò)展性是由JS引擎定義的。

【03】如果給一個(gè)不可擴(kuò)展的對(duì)象的原型添加屬性,這個(gè)不可擴(kuò)展的對(duì)象同樣會(huì)繼承這些新屬性。

(zyx456:原型添加屬性,繼承原型的對(duì)象也自動(dòng)獲取這些新屬性,即使該對(duì)象為不可擴(kuò)展性)

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

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

相關(guān)文章

  • JavaScript 之 面向對(duì)象 [ Object類型 ]

    摘要:類型描述類型對(duì)象是所有其他類型對(duì)象的父級(jí)使用創(chuàng)建對(duì)象表示使用構(gòu)造函數(shù)方式創(chuàng)建一個(gè)空對(duì)象顯示可以根據(jù)一個(gè)給定值創(chuàng)建一個(gè)對(duì)應(yīng)類型的對(duì)象創(chuàng)建一個(gè)類型的對(duì)象顯示啊哈哈創(chuàng)建一個(gè)類型的對(duì)象顯示啊哈哈屬性描述符表示對(duì)象的屬性或方法的內(nèi)部數(shù)據(jù)結(jié)構(gòu)用于描述對(duì) Object類型 描述 object類型對(duì)象是所有其他類型對(duì)象的父級(jí) 使用Object創(chuàng)建對(duì)象 /* 表示使用構(gòu)造函數(shù)方式創(chuàng)建一個(gè)空對(duì)象 */ v...

    reclay 評(píng)論0 收藏0
  • (...)這三個(gè)點(diǎn)在JavaScript中意味著什么?

    摘要:下面是我試圖解釋中三個(gè)點(diǎn)的作用??梢詫⑦@種傳播視為逐個(gè)提取所有單個(gè)屬性并將它們傳遞給新對(duì)象。這意味著下面的代碼將導(dǎo)致您擁有包含重復(fù)元素的數(shù)組。這應(yīng)該是您需要了解的所有內(nèi)容,以便在中使用運(yùn)算符。 這篇文章的標(biāo)題來自我在Quora上被要求回答的一個(gè)問題。下面是我試圖解釋JavaScript中三個(gè)點(diǎn)的作用。希望這對(duì)于將來有相同問題的人來說可以消除圍繞這個(gè)概念的迷霧。 數(shù)組/對(duì)象擴(kuò)展運(yùn)算符 假...

    Faremax 評(píng)論0 收藏0
  • (...)這三個(gè)點(diǎn)在JavaScript中意味著什么?

    摘要:下面是我試圖解釋中三個(gè)點(diǎn)的作用。可以將這種傳播視為逐個(gè)提取所有單個(gè)屬性并將它們傳遞給新對(duì)象。這意味著下面的代碼將導(dǎo)致您擁有包含重復(fù)元素的數(shù)組。這應(yīng)該是您需要了解的所有內(nèi)容,以便在中使用運(yùn)算符。 這篇文章的標(biāo)題來自我在Quora上被要求回答的一個(gè)問題。下面是我試圖解釋JavaScript中三個(gè)點(diǎn)的作用。希望這對(duì)于將來有相同問題的人來說可以消除圍繞這個(gè)概念的迷霧。 數(shù)組/對(duì)象擴(kuò)展運(yùn)算符 假...

    Travis 評(píng)論0 收藏0
  • (...)這三個(gè)點(diǎn)在JavaScript中意味著什么?

    摘要:下面是我試圖解釋中三個(gè)點(diǎn)的作用。可以將這種傳播視為逐個(gè)提取所有單個(gè)屬性并將它們傳遞給新對(duì)象。這意味著下面的代碼將導(dǎo)致您擁有包含重復(fù)元素的數(shù)組。這應(yīng)該是您需要了解的所有內(nèi)容,以便在中使用運(yùn)算符。 這篇文章的標(biāo)題來自我在Quora上被要求回答的一個(gè)問題。下面是我試圖解釋JavaScript中三個(gè)點(diǎn)的作用。希望這對(duì)于將來有相同問題的人來說可以消除圍繞這個(gè)概念的迷霧。 數(shù)組/對(duì)象擴(kuò)展運(yùn)算符 假...

    fjcgreat 評(píng)論0 收藏0
  • 與JavaScript戀愛之對(duì)象三個(gè)屬性

    摘要:為要檢測的對(duì)象構(gòu)造函數(shù)創(chuàng)建的對(duì)象繼承了一個(gè)叫的屬性,該屬性指代該構(gòu)造函數(shù),即的原型。使用直接量創(chuàng)建的對(duì)象,也有一個(gè)叫的屬性,該屬性指代構(gòu)造函數(shù),所以直接量創(chuàng)建的對(duì)象的真正原型是,使用方法來檢測對(duì)象的原型并不可靠,在以后的文章中會(huì)提到。 一、原型屬性 1、對(duì)象的原型屬性是用來繼承屬性的,這個(gè)屬性如此重要,我們通常稱為:對(duì)象的原型屬性或?qū)ο蟮脑?。?duì)象的原型是在對(duì)象實(shí)例化的時(shí)候就設(shè)置好的...

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

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

0條評(píng)論

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