比较javascript中两个变量是否引用同一个对象

Coy*_*ote 5 javascript node.js

我正在寻找一种方法来检查两个变量是否引用 JavaScript 中的同一个对象。

前任:

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
Run Code Online (Sandbox Code Playgroud)

到目前为止,似乎还没有办法做到这一点。

编辑testSame()不是一个真正的函数,它是假设的解决方案。

编辑:问题的答案如何检查两个变量是否具有相同的引用?不回答这个问题,因为它使用严格相等运算符 ( ===),它不区分指向相同字符串的 2 个实例的 2 个变量。

Sch*_*aus 4

只要与==or===进行比较就可以了,字符串除外。没有办法用字符串来完成你所要求的事情。

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);
}
Run Code Online (Sandbox Code Playgroud)