Javascript 难以获得平等

Javascript 难以获得平等,javascript,javascript-objects,Javascript,Javascript Objects,我已经编写了一个原型方法,我想用它扩展Array对象: Array.prototype.indicesOf=函数(val){ var-res=[]; 对于(var a=0;a而言,问题是由于数据应超出范围,即函数已结束 var res=[]//函数的全局范围 var res1=document.getElementById('result_1'); var res2=document.getElementById('result_2'); var-res=[]; Array.prototyp

我已经编写了一个原型方法,我想用它扩展Array对象:

Array.prototype.indicesOf=函数(val){
var-res=[];

对于(var a=0;a而言,问题是由于数据应超出范围,即函数已结束

var res=[]//函数的全局范围

var res1=document.getElementById('result_1');
var res2=document.getElementById('result_2');
var-res=[];
Array.prototype.indicatesof=函数(val){

对于(var a=0;a问题是
{}==={}//false
,因为这是两个不同的对象,即使它们的内容相同。您会发现,即使是内置的
[{name:“test1”},{name:“test2”}]。indexOf({name:“test1”})
也会因为同样的原因而失败。@Barmar实际上这个问题是不同的、唯一的,只是标题不好……它是关于为不同类型的arg泛化一个函数。您的函数需要专门处理对象,并使用其中一个解决方案来测试它们。我会尊重您的判断then@Barmar我倾向于按同样的思路思考作为Atterson,我的问题与您引用/链接的问题不同。我的潜在问题可能在那里,但我想了解为什么不同类型在比较相等时不被视为相同,而不是具体为什么两个对象不被视为相等。我希望我的测试不仅仅是对象类型es会解释这一点。你能帮我重新解释一下我的问题,以免冒犯重复吗?
var res=[];
不是罪犯,我不希望它超出这个原型方法的范围。因为它返回
res
,范围不是问题,数组返回了。对不起!我得到了错误的答案。我正在考虑答案。谢谢你的投票-2çnkü“==”tür ve değer denetleyisi if(这个[a]的类型)==‘对象’){