棧用來存值;
堆用來存引用;
例項 **:
function
setname
(obj)
var person = new
object(); //物件a
setname(person);
console.log(person.name);
最後輸出為:rui;
順序:
建立新的物件 賦予 變數person
呼叫函式 setname,將 物件變數 person 賦給 函式的引數(obj);
此時 obj 與 person 同樣擁有指標指向 //物件a
obj.name 賦值為 rui // 為a物件的name 賦值
(新物件賦給變數obj)此時函式裡面的 obj變數的指標被更改為指向 新物件b。
對應的 hong 值是物件b的name屬性…
函式的引數均為區域性變數
(當在函式內部重寫obj時,這個變數引用的就是乙個區域性物件了)
退出函式時,該區域性物件會在函式執行完畢後銷毀。
物件引數傳遞中 棧和堆的記憶體分析
物件記憶體的理解 1 物件資料存放在堆裡面,2 基本型別的變數和物件的引用變數都在函式的棧記憶體中分配。特別的 1.陣列是物件。2.string型別是特殊型別 下面有個例子 string str new string good string str2 123 main ex new main ex....
跳轉和傳遞引數
實現card之間跳轉的乙個基本方法是go,go和do anchor等標籤的結合是wml高階應用的乙個基礎。sendreferer 表示是否傳遞呼叫href所指定的url的頁面的url,也就是當前頁的url,即http頭中的http referer,預設值為false,可選值為true method ...
變數和引數傳遞
1 區域性變數和成員變數區別 區別一 定義的位置不同 定義在類中的變數是成員變數 定義在方法中或者 語句裡面的變數是區域性變數 區別二 在記憶體中的位置不同 成員變數儲存在堆記憶體的物件中 區域性變數儲存在棧記憶體的方法中 區別三 生命週期不同 成員變數隨著物件的出現而出現在堆中,隨著物件的消失而從...