javascript中值类型和引用类型

String.prototype.self = function() {
return this;
}
var s="s";
alert("s".self() == "s".self());
alert("s".self() === "s".self());
alert(s.self() == s.self());
请教结果,并解释为什么,谢谢!

1个回答

s及"s"都是原始(primitive)字符串类型,如果将它作为对象来使用(调用String.prototype扩展的方法),会创建一个临时String对象。

所以你这里return this返回的就是那个临时对象,对象与对象对比,是看它们是否属同一引用的,所以结果都为false

[code="js"]
alert(new String("a") == new String("a"));
[/code]

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐