猿问

关于js中 indexOf的一点问题

RT
在书上看见这个例子
varperson={name:"Nicholas"};
varpeople=[{name:"Nicholas"}];
varmorepeople=[person];
alert(people.indexOf(person));//-1
alert(morepeople.indexOf(person));//0
有点不明白为何alert(people.indexOf(person));会得到-1
芜湖不芜
浏览 333回答 2
2回答

RISEBY

我去看了一下那本书,首先你的代码有一个地方错了。morepeople=[person]这样才对。在这里查找的时候,所比较的是对象。在people这个数组中的这个{name:"Nicholas"}和person并不是同一个对象,而morepeole中和person是同一个对象(因为直接引用了它)。因此第一个会返回-1(无法找到),第二个是0。你可以直接进行测试,person==people[0]或者person===people[0]都是不成立的(false)。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答