Я просматривал Google Analytics и наткнулся на эту функцию (довольно напечатанную для удобства чтения):
ha = function(a) {
var b = [];
if (Array.prototype.indexOf) return a = b.indexOf(a), "number" ==
typeof a ? a : -1;
for (var c = 0; c < b.length; c++)
if (b[c] === a) return c;
return -1
},
Это похоже на Array.prototype.indexOf
полифилл.Проблема в том, что вместо var b = this;
, который вы ожидаете, вместо var b = [];
.Я не могу найти ни одного обстоятельства, при котором это не вернуло бы -1
.
В последний раз, когда я нашел что-то подобное в Google Analytics, я только что совершил ошибку, и это былона самом деле функциональный.Но ... я действительно не могу понять, где я ошибаюсь с этим.
Этот код что-нибудь делает?Или просто безоговорочно возвращает -1
?
Песочница для тестирования:
var ha = function(a) {
var b = [];
if (Array.prototype.indexOf) return a = b.indexOf(a), "number" ==
typeof a ? a : -1;
for (var c = 0; c < b.length; c++)
if (b[c] === a) return c;
return -1
};
<input id="input" value="ha(5);" /><button onclick="var v=document.getElementById('input').value;console.log(v,eval(v));">Run</button>