我之前在思考一个问题。我想检查一个函数是否已经被放入一个数组中。如果是这样抛出异常。我用控制台做了这个小测试......
所以我想我可以说对象总是只是引用,并且在设置之后a
我x
可以更改x
并且a
也会受到影响?
这是否意味着条件x = a
无论如何,这就是我想要的。
使用它来检查函数/对象是否已经在数组中,我可以正确地做到这一点......
有一个更好的方法吗?
这是否也意味着如果我将一个变量传递给一个函数并在该函数中对其进行变异,它也会在该函数之外发生变异?
编辑
我想我对这个小测试的突变是正确的。但我不明白为什么它在第二个示例的第一个日志中出现栏
编辑结束
示例 1:
var x = function(){console.log("hello")}; var a = function(){console.log("hello")};
console.log(x == a); //comes out false
//Set a as x
a = x;
console.log(x == a); //comes out true
示例 2:
Array.prototype.Contains = Array.prototype.Contains || function (obj) {
return this.indexOf(obj) != -1;
};
var x = function(){console.log("hello")}; var a = function(){console.log("hello")};
var z = a;
console.log(x == a); //comes out false
var l = [];
l.push(x);
//Set a as x
a = x;
l.push(a);
console.log(x == a); //comes out true
console.log(l.Contains(x)); //Should come out true
console.log(l.Contains(a)); //Should come out true
console.log(l.Contains(z)); //Should come out false