首頁 >web前端 >js教程 >JavaScript中的Primitive物件封裝介紹_javascript技巧

JavaScript中的Primitive物件封裝介紹_javascript技巧

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB原創
2016-05-16 16:23:001193瀏覽

JavaScript中,string、number、boolean皆為primitive基本型,也即字串、數值、布林值並不是以物件的形式而存在的。不過,由於需要對這三種primitive類型值進行操作,因此JavaScript會自動封裝這三種類型的值,使其作為物件而擁有屬性與方法。以string為例,這種封裝過程如下:

1.當JavaScript遇到對string值進行屬性存取或方法呼叫時,會呼叫new String(字串值)自動將該string封裝成一個String物件。
2.JavaScript會存取這個新建立的物件的屬性或方法,並傳回對應的結果。
3.屬性存取或方法呼叫結束後,JavaScript將立即銷毀這個新建立的物件。

以下面的程式碼為例,對JavaScript自動建立的String物件進行屬性寫入操作沒有任何意義,因為這個建立出來的物件在寫入語句結束後就不復存在了:


複製程式碼 程式碼如下:

var s = "test";
s.length = 9;
console.log(s.length);//still 4
s.newVariable = 9;
console.log(s.newVariable);//undefined
console.log(s === "test");//true

值得注意的是,上述程式碼中的s變數所表示的永遠是primitive的字串,JavaScript所自動建立的字串物件存在於執行s.length或s.newVariable操作的過程中。這可以從以上實驗的最後一行程式碼中得到驗證。

除了對Primitive值進行自動封裝,開發人員也可以選擇手動進行相應的過程。與自動封裝不同的是,手動封裝所得到的物件並不會立即被銷毀,因此針對手動封裝的物件所採取的屬性寫入操作是有意義的:


複製程式碼 程式碼如下:

var t = new String("test");
t.length = 9;
console.log(t.length);//still 4, as length attribute is read only
t.newVariable = 9;
console.log(t.newVariable);//9

console.log(t == "test");//true
console.log(t === "test");//false

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn