JS中的基本包裝類型


想一下:為什么String類型的值可以調用某些方法和訪問某些屬性呢?

在基本數據類型中有3個特殊的存在:String Number Boolean

這三個基本類型都有自己對應的包裝對象。包裝對象,其實就是對象,有相應的屬性和方法。調用方法的過程,是在后台偷偷發生的,所以我們稱作為基本包裝類型。

//我們平常寫程序的過程:
var str = 'hello'; //string 基本類型
var s2 = str.charAt(0); //在執行到這一句的時候 后台會自動完成以下動作 :
//后台偷偷發生的
( 
 var _str = new String('hello'); // 1.創建String類型的一個實例
 var s2 = _str.chaAt(0); // 2 在實例上調用指定的方法,並且返回結給s2
 _str = null;  //    3.銷毀這個實例
 ) 
alert(s2);//h 
alert(str);//hello

在看一個例子

var str = 'string';
str.pro = 'hello';
console.log(str.pro);

當執行 str.pro = 'hello' 時,實際上內部創建了一個基本包裝類型的實例,然后給這個實例的 pro 屬性賦值為 hello,實例創建后馬上銷毀了,當下一次試圖獲取 str.pro 的值時,又會創建一個基本包裝類型的實例,顯然新創建的實例時沒有 pro 屬性的,為 undefined,所以最后輸出 undefined 。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM