欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript中關于indexOf的使用方法與問題小結

 更新時間:2010年08月05日 14:06:31   作者:  
indexOf方法的作用是:根據給定參數x返回目標字符串(可以看成字符的數組)或數組中與x相等的項的索引。
這個方法相當有用,很多編程語言中都有相對應的實現,javascript中也不例外,然而當我在ie中運行如下代碼時候:
復制代碼 代碼如下:

var arr = [1,2,3];
alert(arr.indexOf(1));

卻被提示“對象不支持此屬性和方法” 。而在chrome,ff下去運行良好。遂去求問google大神,發(fā)現原來js中Array的indexOf方法在js1.6版本中才給予了實現,ie7,8中只實現到了js1.3版本,chrome為js1.7版本,ff為js1.8版本。(ie依舊慢半拍)。無奈,只好針對ie進行擴展:
復制代碼 代碼如下:

Array.prototype._indexOf = function(n){
if("indexOf" in this){
return this["indexOf"](n);
}
for(var i=0;i<this.length;i++){
if(n===this[i]){
return i;
}
}
return -1;
};

使用如下:
復制代碼 代碼如下:

var arr = ["1","2","3"];
alert(arr._indexOf("2"));

這里我們針對Array的原型進行了擴展,在擴展方法的命名上我加上了"_"字符,我認為這是一個好的習慣,當你在針對原型進行擴展的時候有必要對自己的擴展加以標記。
在_indexOf方法中,我們首先判斷當前Array是否實現了"indexOf" 方法,如果是的話直接調用系統發(fā)法,否則進行遍歷。

相關文章

最新評論