關於函數參數傳遞的類型思考

最近在看js高級程序設計(第三版)裏面解釋函數參數類型傳遞有這樣一句話 ECMAScript 中全部函數的參數都是按值傳遞的 而後有兩個例子來講明二者的區別:javascript

複製代碼

function setName(obj) { 
    obj.name = "Nicholas"; 
} 
var person = new Object(); 
setName(person); 
alert(person.name); //"Nicholas"複製代碼

 看上去很像引用類型的傳遞,而後又一個例子解釋:java

function setName(obj) { 
 obj.name = "Nicholas"; 
 obj = new Object(); 
 obj.name = "Greg"; 
} 
var person = new Object(); 
setName(person); 
alert(person.name); //"Nicholas" 複製代碼

obj = new Object() 將指針指向了新的對象,原person應該仍是指向原來的對象,此時perso.name = 'Nicholas' 固然成立,再對obj賦值又如何能證實函數參數傳遞是值傳遞?bash

至關於以下:函數

var person = new Object();
var obj = person;
obj.name = "Nicholas";
var obj = new Object();
obj.name = "Greg";
console.log(person.name) //Nicholas複製代碼

還望解惑ui

相關文章
相關標籤/搜索