js 判断对象是否是同一个对象 10
就是c++的&a==&bstrings1="ab",s2="ab",&s3=s2;if(s1==s2)//trueif(&s1==&s2)//false要实现这个if(&...
就是c++的 &a == &b
string s1="ab",s2="ab",&s3=s2;
if(s1==s2) // true
if(&s1==&s2) // false 要实现这个
if(&s2==&s3) // true
javascript:
var a="ab",b="abc".substr(0,2) ,c=b;
if(a==b) //true
if(a===b)//true
if(b==c) // true
if(b===c)//true
可以看到根本无法判断是
var a=new String(xxx), b=a
还是
var a=new String(xxx),b=new String(a);
请教如何判断? 展开
string s1="ab",s2="ab",&s3=s2;
if(s1==s2) // true
if(&s1==&s2) // false 要实现这个
if(&s2==&s3) // true
javascript:
var a="ab",b="abc".substr(0,2) ,c=b;
if(a==b) //true
if(a===b)//true
if(b==c) // true
if(b===c)//true
可以看到根本无法判断是
var a=new String(xxx), b=a
还是
var a=new String(xxx),b=new String(a);
请教如何判断? 展开
6个回答
展开全部
你的意思是判断两个对象是否是同一个对象,在js里,字符串不是对象类型(当然js里从宏观上说神马一切都是对象),基本数据类型存在栈内存里,存的是他们的值不是存的地址,在基本数据类型里值相等并且数据类型相同他们就完全相等(除开奇怪的NAN)。所以s1==s2为true,a===b也为true,b==c还是为true,b===c也为true。
他们本身就是全等的,var a="ab",b="abc".substr(0,2) ,c=b;因为存的东西都是一样都是他们的值。你可以把String换成Array或者Obj就跟你想要的效果一样了。
他们本身就是全等的,var a="ab",b="abc".substr(0,2) ,c=b;因为存的东西都是一样都是他们的值。你可以把String换成Array或者Obj就跟你想要的效果一样了。
展开全部
从举例来看,是将string当做全部对象了。
在JavsScript中,没有类似c, c++中的所谓取地址的操作,给String变量赋值,就是值复制。所有的String变量都是有自己的存储空间的;而String变量的比较就是比较其内容是否相同,而不是比较是否为同一存储空间的变量。
如果是页面元素对象或者其他自定义“类”实例的话,那么等号操作符则是比较元素对象是否为同一实例。
在JavsScript中,没有类似c, c++中的所谓取地址的操作,给String变量赋值,就是值复制。所有的String变量都是有自己的存储空间的;而String变量的比较就是比较其内容是否相同,而不是比较是否为同一存储空间的变量。
如果是页面元素对象或者其他自定义“类”实例的话,那么等号操作符则是比较元素对象是否为同一实例。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
相同的值在内存里的地址是一个
js里面的变量就相当于引用,指向这些值
=== 附加了类型比较,而不是判断是否引用
js里面的变量就相当于引用,指向这些值
=== 附加了类型比较,而不是判断是否引用
追问
没错,那么怎么实现 if(&a == &b) 呢?
有没有什么全局唯一对象id以供判断?
难得必须自己像这样写吗...
function newString(x)
{
s=new String(x);
s.globalid=Math.random();
return s;
}
function equalObj(x,y)
{
return x.globalid==y.globalid;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<script type="text/javascript">
var s1="ab",s2=s1;
s1="bc";
alert(s2); //ab
</script>
var s1="ab",s2=s1;
s1="bc";
alert(s2); //ab
</script>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一个脚本语言而已,不至于到内存吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询