Javascript变量赋值是否通过引用工作?

时间:2014-02-06 07:37:27

标签: javascript

我有一个关于在javascript中引用对象的问题。

假设我有一个变量是某个对象(比如json),它被称为objOne - (var objOne = someJSONObject;)。

如果我继续并宣布

var objTwo = objOne;

我会对同一个对象有两个引用吗?有点像c指针?

2 个答案:

答案 0 :(得分:0)

总结一下:

  • 分配按价值
  • 完成
  • 你从不操纵对象,只有对象引用

这意味着

  • 您将对同一个对象有两个引用(您可以通过更改对象的属性来检查)
  • 当您在变量中传入基元的值时,更改变量不会更改其他变量
编辑:因为它是重复的,我会在一分钟内删除这个答案,以便在没有其他答案的情况下正确关闭。请投票结束。

答案 1 :(得分:0)

是的,对象通过引用传递:

function changeVal(obj){
    obj.value = "bar"
}

(function checkRefs(){

    var myObject = {
        value: "foo"
    };


    alert(myObject.value);

    changeVal(myObject);

    alert(myObject.value);


})();