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

資訊專欄INFORMATION COLUMN

標(biāo)準(zhǔn)庫(三)包裝對象

skinner / 304人閱讀

摘要:所謂包裝對象,指的是與數(shù)值字符串布爾值分別相對應(yīng)的三個原生對象。引擎自動將其轉(zhuǎn)為包裝對象,在這個對象上調(diào)用屬性。調(diào)用結(jié)束后,這個臨時對象就會被銷毀自動轉(zhuǎn)換生成的包裝對象是只讀的,無法修改。

所謂“包裝對象”,指的是與數(shù)值、字符串、布爾值分別相對應(yīng)的Number、String、Boolean三個原生對象。這三個原生對象可以把原始類型的值變成(包裝成)對象

var v1 = new Number(123);
var v2 = new String("abc");
var v3 = new Boolean(true);

typeof v1 // "object"
typeof v2 // "object"
typeof v3 // "object"

v1 === 123 // false
v2 === "abc" // false
v3 === true // false

目的
使得原始類型的值也有辦法調(diào)用自己的方法。

這三個對象作為構(gòu)造函數(shù)使用(帶有new)時,可以將原始類型的值轉(zhuǎn)為對象;作為普通函數(shù)使用時(不帶有new),可以將任意類型的值,轉(zhuǎn)為原始類型的值

2.實(shí)例方法
三種包裝對象各自提供了許多實(shí)例方法,詳見后文。這里介紹兩種它們共同具有、從Object對象繼承的方法:valueOf()和toString()

2.1valueOf()
valueOf()方法返回包裝對象實(shí)例對應(yīng)的原始類型的值。

new Number(123).valueOf() // 123
new String("abc").valueOf() // "abc"
new Boolean(true).valueOf() // true
toString()

2.2toString()方法返回對應(yīng)的字符串形式。

new Number(123).toString() // "123"
new String("abc").toString() // "abc"
new Boolean(true).toString() // "true"

3原始類型與實(shí)例對象的自動轉(zhuǎn)換
某些場合,原始類型的值會自動當(dāng)作包裝對象調(diào)用,即調(diào)用包裝對象的屬性和方法。這時,JavaScript 引擎會自動將原始類型的值轉(zhuǎn)為包裝對象實(shí)例,并在使用后立刻銷毀實(shí)例。

比如,字符串可以調(diào)用length屬性,返回字符串的長度。
var str = "abc";
str.length // 3

// 等同于
var strObj = new String(str)
// String {
// 0: "a", 1: "b", 2: "c", length: 3, [[PrimitiveValue]]: "abc"
// }
strObj.length // 3
上面代碼中,abc是一個字符串,本身不是對象,不能調(diào)用length屬性。JavaScript 引擎自動將其轉(zhuǎn)為包裝對象,在這個對象上調(diào)用length屬性。調(diào)用結(jié)束后,這個臨時對象就會被銷毀

3.1自動轉(zhuǎn)換生成的包裝對象是只讀的,無法修改。所以,字符串無法添加新屬性。

var s = "Hello World";
s.x = 123;
s.x // undefined
上面代碼為字符串s添加了一個x屬性,結(jié)果無效,總是返回undefined

3.2調(diào)用結(jié)束后,包裝對象實(shí)例會自動銷毀。這意味著,下一次調(diào)用字符串的屬性時,實(shí)際是調(diào)用一個新生成的對象,而不是上一次調(diào)用時生成的那個對象,所以取不到賦值在上一個對象的屬性。如果要為字符串添加屬性,只有在它的原型對象String.prototype上定義
4自定義方法

除了原生的實(shí)例方法,包裝對象還可以自定義方法和屬性,供原始類型的值直接調(diào)用。

比如,我們可以新增一個double方法,使得字符串和數(shù)字翻倍。

String.prototype.double = function () {
return this.valueOf() + this.valueOf();
};

"abc".double()
// abcabc

Number.prototype.double = function () {
return this.valueOf() + this.valueOf();
};

(123).double() // 246
上面代碼在String和Number這兩個對象的原型上面,分別自定義了一個方法,從而可以在所有實(shí)例對象上調(diào)用。注意,最后一張的123外面必須要加上圓括號,否則后面的點(diǎn)運(yùn)算符(.)會被解釋成小數(shù)點(diǎn)。

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

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

相關(guān)文章

  • 標(biāo)準(zhǔn)包裝對象

    摘要:所謂包裝對象,指的是與數(shù)值字符串布爾值分別相對應(yīng)的三個原生對象。引擎自動將其轉(zhuǎn)為包裝對象,在這個對象上調(diào)用屬性。調(diào)用結(jié)束后,這個臨時對象就會被銷毀自動轉(zhuǎn)換生成的包裝對象是只讀的,無法修改。 所謂包裝對象,指的是與數(shù)值、字符串、布爾值分別相對應(yīng)的Number、String、Boolean三個原生對象。這三個原生對象可以把原始類型的值變成(包裝成)對象 var v1 = new Numbe...

    Donne 評論0 收藏0
  • 標(biāo)準(zhǔn)包裝對象

    摘要:所謂包裝對象,指的是與數(shù)值字符串布爾值分別相對應(yīng)的三個原生對象。引擎自動將其轉(zhuǎn)為包裝對象,在這個對象上調(diào)用屬性。調(diào)用結(jié)束后,這個臨時對象就會被銷毀自動轉(zhuǎn)換生成的包裝對象是只讀的,無法修改。 所謂包裝對象,指的是與數(shù)值、字符串、布爾值分別相對應(yīng)的Number、String、Boolean三個原生對象。這三個原生對象可以把原始類型的值變成(包裝成)對象 var v1 = new Numbe...

    zhunjiee 評論0 收藏0
  • 標(biāo)準(zhǔn)包裝對象

    摘要:所謂包裝對象,指的是與數(shù)值字符串布爾值分別相對應(yīng)的三個原生對象。引擎自動將其轉(zhuǎn)為包裝對象,在這個對象上調(diào)用屬性。調(diào)用結(jié)束后,這個臨時對象就會被銷毀自動轉(zhuǎn)換生成的包裝對象是只讀的,無法修改。 所謂包裝對象,指的是與數(shù)值、字符串、布爾值分別相對應(yīng)的Number、String、Boolean三個原生對象。這三個原生對象可以把原始類型的值變成(包裝成)對象 var v1 = new Numbe...

    impig33 評論0 收藏0
  • JavaScript標(biāo)準(zhǔn)系列——包裝對象(四)

    摘要:目錄導(dǎo)語包裝對象的理解三大包裝對象的知識點(diǎn)小結(jié)導(dǎo)語包裝對象是為了彌補(bǔ)基本數(shù)據(jù)類型的非對象特性而產(chǎn)生的,對于基本類型值而言,本來是不存在屬性和方法的,但是我們可以在使用字面量創(chuàng)建字符串時,調(diào)用例如的方法,那么其內(nèi)在原理究竟是什么呢閱讀完本篇文 目錄 導(dǎo)語 1. 包裝對象的理解 2. 三大包裝對象的知識點(diǎn) 3. 小結(jié) 導(dǎo)語 包裝對象是為了彌補(bǔ)基本數(shù)據(jù)類型的非對象特性而產(chǎn)生的,對于基本類型...

    sean 評論0 收藏0
  • 標(biāo)準(zhǔn)(四)包裝對象二number

    摘要:對象概述作為構(gòu)造函數(shù),它主要用于生成布爾值的包裝對象實(shí)例。無輸出上面代碼的第一個例子之所以得到,是因?yàn)閷?yīng)的包裝對象實(shí)例是一個對象,進(jìn)行邏輯運(yùn)算時,被自動轉(zhuǎn)化成布爾值因?yàn)樗袑ο髮?yīng)的布爾值都是。 1.Boolean 對 象 1.1概述作為構(gòu)造函數(shù),它主要用于生成布爾值的包裝對象實(shí)例。 false對應(yīng)的包裝對象實(shí)例,布爾運(yùn)算結(jié)果也是true。 if (new Boolean(false...

    MAX_zuo 評論0 收藏0

發(fā)表評論

0條評論

skinner

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<