JavaScript를 오랫동안 사용 해본 적이 있다면 Internet Explorer가 Array.prototype.indexOf ()에 대한 ECMAScript 함수를 구현하지 않는다는 것을 알고 있습니다 (Internet Explorer 8 포함). 다음 코드를 사용하여 페이지의 기능을 확장 할 수 있기 때문에 큰 문제는 아닙니다.
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;
}
언제 구현해야합니까?
프로토 타입 함수가 존재하는지 여부를 확인하고 그렇지 않은 경우 어레이 프로토 타입을 확장하는 다음 확인으로 모든 페이지에 랩핑해야합니까?
if (!Array.prototype.indexOf) {
// Implement function here
}
또는 브라우저 확인을 수행하고 Internet Explorer 인 경우 구현합니까?
//Pseudo-code
if (browser == IE Style Browser) {
// Implement function here
}
Array.indexOf
부정적인 시작 지수를 고려하지 않습니다. 여기에서 Mozilla의 제안 중지 간격 구현을 참조하십시오. developer.mozilla.org/en/JavaScript/Reference/Global_Objects/…
Array.prototype.indexOf
는 ECMA-262 / ECMAScript의 일부가 아닙니다. 참조 ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf 어쩌면 당신은있는 거 생각String.prototype.indexOf
...