ecmasscript中所有的引數都是按值傳遞的。也就是說,把函式外部的值複製給函式內部的引數,就和把值從乙個變數複製到另乙個變數一樣。基本型別值得傳遞如同基本型別變數的複製一樣,二引用型別值得傳遞,則如同引用型別變數的複製一樣。
function setname(obj){
obj.name="nicholas";
obj = new object();
obj.name = "greg";
var person = new object();
setname(person);
alert(person.name); //"nicholas"
即使函式內部修改了引數的值,但原來的引用仍然保持未變。實際上,當在函式內部重寫obj時,這個變數引用的就是乙個區域性物件了。而這個區域性物件會在函式執行完畢後立即被銷毀。
JS引數傳遞
基本資料型別的傳遞 function changenum num function changestr str 作為引數傳遞的變數不因為引數值的改變而改變 let num 2 let numret changenum num console.log num,numret 2 3 let str he...
js傳遞引數
js中引數的傳遞之數值傳遞 這次傳遞相當於將count的值拷貝了乙份給num,num的改變並不影響count 兩塊不同的記憶體區域 function addten num console.log result 30 js中引數傳遞之物件的傳遞 這次傳遞是person的值 person在這裡得到的是指...
js引數傳遞方式
是最常用的求值策略 函式的形參是被呼叫時所傳實參的副本。修改形參的值並不會影響實參。函式的形參接收實參的隱式引用,而不再是副本。這意味著函式形參的值如果被修改,實參也會被修改。同時兩者指向相同的值。按引用傳遞會使函式呼叫的追蹤更加困難,有時也會引起一些微妙的bug。按值傳遞由於每次都需要轉殖副本,對...