最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

比较两个变量是否在javascript中引用相同的对象

IT培训 admin 12浏览 0评论

比较两个变量是否在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

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

edittestSame()不是实函数,它将是假设的解决方案。

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

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

edittestSame()不是实函数,它将是假设的解决方案。

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);
}
发布评论

评论列表 (0)

  1. 暂无评论