猿问

(求教)关于js函数按值传递的问题

看了高教这本书,函数传递的章节,有这样的代码:

    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值后,也同样不会变,这不是跟函数的传参一样吗,都是按值传递的


慕容森
浏览 418回答 1
1回答
随时随地看视频慕课网APP

相关分类

Android
我要回答