看了高教这本书,函数传递的章节,有这样的代码:
function setName(obj) {
obj.name = '小明'
obj = new Object()
obj.name = '小华'
} var person = new Object()
setName(person) console.log(person.name)书上说的是函数参数是按值传递的,当在函数内部重写obj时,这个变量引用 的就是一个局部变量了,但是我自己写了一个:
var obj1 = new Object() var obj2 = obj1 obj1.name = '小明' obj1 = new Object() obj1.name = '小华' obj2.age = 22 console.log(obj1.age) //undefined console.log(obj2.name) //小明
重写obj1后,改变obj1的值,obj2的值没有变,相反的改变obj2值后,也同样不会变,这不是跟函数的传参一样吗,都是按值传递的
慕容森
随时随地看视频慕课网APP
相关分类