比较两个变量是否在javascript中引用相同的对象
我正在寻找一种方法来检查两个变量是否引用了javascript中的同一对象。
ex:
var a = {foo:"bar"};
var b = {foo:"bar"};
var aa = a;
testSame(a, b); //false
testSame(a, aa); //true
var r = "a string";
var s = "a string";
var rr = r;
testSame(r, s); //false
testSame(r, rr); //true
到目前为止,似乎还没有办法做到这一点。
edit:testSame()
不是实函数,它将是假设的解决方案。
edit:对问题How to check if two vars have the same reference?的回答没有回答此问题,因为它使用了严格相等运算符(===
),该运算符不会在指向相同字符串的2个实例的2个变量之间进行区分。
仅与==
或===
进行比较即可解决问题,字符串除外。无法用字符串来完成您要问的事情。
var a = {foo:"bar"};
var b = {foo:"bar"};
var aa = a;
testSame(a, b); //false
testSame(a, aa); //true
var r = "a string";
var s = "a string";
var rr = r;
testSame(r, s); // false <-- this will be true
testSame(r, rr); //true
function testSame(a, b) {
console.log(a === b);
}
比较两个变量是否在javascript中引用相同的对象
我正在寻找一种方法来检查两个变量是否引用了javascript中的同一对象。
ex:
var a = {foo:"bar"};
var b = {foo:"bar"};
var aa = a;
testSame(a, b); //false
testSame(a, aa); //true
var r = "a string";
var s = "a string";
var rr = r;
testSame(r, s); //false
testSame(r, rr); //true
到目前为止,似乎还没有办法做到这一点。
edit:testSame()
不是实函数,它将是假设的解决方案。
edit:对问题How to check if two vars have the same reference?的回答没有回答此问题,因为它使用了严格相等运算符(===
),该运算符不会在指向相同字符串的2个实例的2个变量之间进行区分。
仅与==
或===
进行比较即可解决问题,字符串除外。无法用字符串来完成您要问的事情。
var a = {foo:"bar"};
var b = {foo:"bar"};
var aa = a;
testSame(a, b); //false
testSame(a, aa); //true
var r = "a string";
var s = "a string";
var rr = r;
testSame(r, s); // false <-- this will be true
testSame(r, rr); //true
function testSame(a, b) {
console.log(a === b);
}