我有一个像这样的javascript函数(我使用jquery)
$(document).ready(function() {
var arr = [];
function addArray(item) {
var alreadyIn = jQuery.inArray(item, arr);
alert("already in : " + alreadyIn);
if (alreadyIn == -1) {
alert("going to push it")
arr.push(item);
alert("after push : " + arr)
}
}
addArray(function(mgs) {
alert("hai 1");
});
addArray(function(mgs) {
alert("hai 1");
});
});
为什么当我调用第二个addArray时,jQuery.inArray总是返回-1?假设没有(因为我第一次添加那个数组)
有什么我在这里做错了吗?
答案 0 :(得分:1)
如果对象与对象的实例完全相同,则对象仅相互相等(因此仅触发inArray
检查)。
例如:
var a = {}, b = {}, c = a;
a == b // false, different instances
a == c // true, same instance
您的两个功能可能相同,但它们仍然是两个功能,而不是相同的功能。