javascript变量引用

时间:2014-01-31 06:51:04

标签: javascript variables reference

好吧所以我有一个变量,我设置为另一个变量,这是一个javascript对象。

function Test(){
    this.root = {"data":"mydata"};
}

Test.prototype.test = function(){
    var current = this.root;
    current = null;
    console.log(this.root);

}

var t = new Test();
t.test();

我当前指向this.root然后我将current重置为null但是this.root仍然指向javascript对象。是否可以使用当前变量将this.root设置为null?

2 个答案:

答案 0 :(得分:0)

正确的代码如下。您可以更改引用对象的属性而不是引用对象本身。

Test.prototype.test = function() {
            var current = this;

            current.root = null;

            console.log(this.root);

        }

        var t = new Test();
        t.test();

答案 1 :(得分:0)

无法使用this.root进行更改currentcurrent以及this.root只是对象的引用。

我喜欢Marijn Haverbeke在Eloquent Javascript中解释它的方式:

  

你应该把变量想象成触手而不是盒子。它们不包含值,它们掌握它们 - 两个变量可以引用相同的值。只有程序仍然保持的值才能被访问。

所以他们都只是抓住了对象,一个参考不能改变另一个