关于函数参数传递的类型思考

最近在看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

相关文章
相关标签/搜索