Herhangi bir uzunlukta JavaScript ile çalıştıysanız, Internet Explorer'ın Array.prototype.indexOf () [Internet Explorer 8 dahil] için ECMAScript işlevini uygulamadığını bilirsiniz. Çok büyük bir sorun değil, çünkü sayfanızdaki işlevselliği aşağıdaki kodla genişletebilirsiniz.
Array.prototype.indexOf = function(obj, start) {
for (var i = (start || 0), j = this.length; i < j; i++) {
if (this[i] === obj) { return i; }
}
return -1;
}
Bunu ne zaman uygulamalıyım?
Prototip işlevinin var olup olmadığını kontrol eden ve yoksa Array prototipini genişleten aşağıdaki kontrolle tüm sayfalarıma sarmalıyım?
if (!Array.prototype.indexOf) {
// Implement function here
}
Veya tarayıcı kontrol ve Internet Explorer olup olmadığını sadece uygulamak?
//Pseudo-code
if (browser == IE Style Browser) {
// Implement function here
}
Array.indexOf
olumsuz başlangıç endeksleri dikkate almaz. Mozilla'nın öneri durdurma boşluğu uygulamasına buradan bakın: developer.mozilla.org/en/JavaScript/Reference/Global_Objects/…
Array.prototype.indexOf
ECMA-262 / ECMAScript'in bir parçası değildir. Bkz. Ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf Belki düşünüyorsunuzString.prototype.indexOf
...