JavaScript學習筆記——基本類型和引用類型

變量包括兩種變量:基本類型值和引用類型值。基本類型值指的是簡單的數據段,引用類型值指的是那些可能由多個值構成的對象。
1、動態屬性
定義基本類型值和引用類型值得方法是類似的:創建一個變量並且爲該變量賦值。對於引用類型值我們可以爲其添加屬性和方法,也可以改變和刪除其屬性和方法。

var person = new Object();
person.name= "Nicholas";
alert("person.name");//Nicholas

如果對象不被銷燬或這個屬性不被刪除,則這個屬性將一直存在。

var name = "Nicholas";
name.age = 27;
alert(name.age);//undefined

基本類型的值不可以動態的添加屬性
2、複製變量值
如果從一個變量向另一個變量複製基本類型的值,會在變量對象上創建一個新值,然後把該值複製到新變量分配的位置上。
如果從一個變量向另一個變量複製引用類型的值,同樣會將存儲在變量對象中的值複製一份放到位新變量分配的空間中,不同的是,這個值的副本其實是一個指針,而這個指針指向存儲在堆中的一個對象。複製結束後,兩個變量指向同一個對象。因此,改變一個變量的值,另一個也會發生改變。

var obj1 = new Object();
var obj2 = obj1;
obj1.name= "Nicholas";
alert(obj2.name);//Nicholas

兩個變量指向同一個對象。
3、傳遞參數
訪問變量有按值和按引用兩種方法,而參數只能按值傳遞。

function addTen(num){
    num += 10;
    return num;
}
var count = 20;
var result = addTen(count);
alert(count);//20
alert(result);//30

參數是局部變量,並不影響函數外部的count

function SetName(obj){
    obj.name="Nicholas";
    obj = new Object();
    obj.name = "greg";
}
var person = new Object();
SetName(person);
alert(person.name);//Nicholas
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章