最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript forEach函數(shù)實現(xiàn)代碼

 更新時間:2010年01月05日 13:32:32   投稿:mdxy-dxy  
在Base2中找到一個叫forEach的函數(shù),是我見過的最好的實現(xiàn)。挖出來分析一下。它能對各種普通對象,字符串,數(shù)組以及類數(shù)組進行遍歷。如果原游覽器的對象已實現(xiàn)此函數(shù),它則調(diào)用原對象的函數(shù)。

復(fù)制代碼 代碼如下:

function forEach(object, block, context, fn) {
if (object == null) return;
if (!fn) {
if (typeof object == "function" && object.call) {
//遍歷普通對象
fn = Function;
} else if (typeof object.forEach == "function" && object.forEach != arguments.callee) {
//如果目標已經(jīng)實現(xiàn)了forEach方法,則使用它自己的forEach方法(如標準游覽器的Array對象)
object.forEach(block, context);
return;
} else if (typeof object.length == "number") {
// 如果是類數(shù)組對象或IE的數(shù)組對象
_Array_forEach(object, block, context);
return;
}
}
_Function_forEach(fn || Object, object, block, context);
};
function _Array_forEach(array, block, context) {
if (array == null) return;
var i = 0,length = array.length;
if (typeof array == "string") {
for (; i < length; i++) {
block.call(context, array.charAt(i), i, array);
}
}else{
for (;i < length; i++) {
block.call(context, array[i], i, array);
}
}
};
_Function_forEach = function(fn, object, block, context) {
// 這里的fn恒為Function
for (var key in object) {
//只遍歷本地屬性
if (object.hasOwnProperty(key)) {
//相當于 block(object[key], key)
block.call(context, object[key], key, object);
}
}
};

原作者的一些例子:
復(fù)制代碼 代碼如下:

function print(el,index){
alert(index+" : "+el)
}
forEach ([1, 2, 3], print);
forEach ({a: "aa", b: "bb",c: "cc"}, print);
forEach ("司徒正美", print);
forEach(document.styleSheets,function(el){
if(el.href) alert(el.href)
});


復(fù)制代碼 代碼如下:

function Person(name, age) {
this.name = name || "";
this.age = age || 0;
};
Person.prototype = new Person;
var fred = new Person("Fred", 38);
fred.language = "English";//極晚綁定
fred.wife = "Wilma";//極晚綁定
forEach(fred,print)

相關(guān)文章

  • Bootstrap開發(fā)實戰(zhàn)之第一次接觸Bootstrap

    Bootstrap開發(fā)實戰(zhàn)之第一次接觸Bootstrap

    Bootstrap開發(fā)實戰(zhàn)之第一次接觸Bootstrap,想要學(xué)好一門語言,首先應(yīng)該進行深入了解,感興趣的小伙伴們可以參考一下
    2016-06-06
  • javascript表單事件處理方法詳解

    javascript表單事件處理方法詳解

    這篇文章主要為大家詳細介紹了javascript表單事件處理方法,感興趣的小伙伴們可以參考一下
    2016-05-05
  • Bootstrap學(xué)習(xí)筆記之css樣式設(shè)計(1)

    Bootstrap學(xué)習(xí)筆記之css樣式設(shè)計(1)

    這篇文章主要為大家詳細介紹了bootstrap學(xué)習(xí)筆記之css樣式設(shè)計,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-06-06
  • JavaScript 實現(xiàn)類似Express的中間件系統(tǒng)(實例詳解)

    JavaScript 實現(xiàn)類似Express的中間件系統(tǒng)(實例詳解)

    在 Express 中可以給一個請求設(shè)置若干個中間件,在處理響應(yīng)時會按順序執(zhí)行這些中間件,正在執(zhí)行的中間件可以控制是否執(zhí)行下一個中間件,這篇文章主要介紹了JavaScript 實現(xiàn)類似Express的中間件系統(tǒng)的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • javascript中setTimeout使用指南

    javascript中setTimeout使用指南

    本文給大家通過3個方法向大家展示了javascript中的setTimeout的使用,非常的簡單,有需要的小伙伴可以參考下。
    2015-07-07
  • 為什么JavaScript中0.1 + 0.2 != 0.3

    為什么JavaScript中0.1 + 0.2 != 0.3

    這篇文章主要給大家介紹了關(guān)于為什么JavaScript中0.1 + 0.2 != 0.3的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 幫你徹底搞懂JS中的prototype、__proto__與constructor(圖解)

    幫你徹底搞懂JS中的prototype、__proto__與constructor(圖解)

    這篇文章主要介紹了詳解幫你徹底搞懂JS中的prototype、__proto__與constructor(圖解),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • onsubmit阻止form表單提交與onclick的相關(guān)操作

    onsubmit阻止form表單提交與onclick的相關(guān)操作

    return false會阻止表單提交,基本上關(guān)于onsubmit=return false有以下幾點要注意的地方,學(xué)習(xí)后臺編程的朋友一定要知道。
    2010-09-09
  • js和jquery分別驗證單選框、復(fù)選框、下拉框

    js和jquery分別驗證單選框、復(fù)選框、下拉框

    這篇文章主要為大家詳細介紹了js和jquery分別驗證單選框、復(fù)選框、下拉框的具體代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2015-12-12
  • bootstarp modal框居中顯示的實現(xiàn)代碼

    bootstarp modal框居中顯示的實現(xiàn)代碼

    這篇文章主要介紹了bootstarp modal框居中顯示的實現(xiàn)代碼,需要的朋友可以參考下
    2017-02-02

最新評論

广南县| 沐川县| 福安市| 荆州市| 碌曲县| 包头市| 德惠市| 松桃| 满洲里市| 开江县| 武隆县| 会东县| 郁南县| 西昌市| 鄂州市| 吉安县| 临沂市| 固安县| 延安市| 宜阳县| 锡林浩特市| 光山县| 克东县| 吕梁市| 龙川县| 潞城市| 镇巴县| 永吉县| 荔浦县| 灌云县| 淳化县| 调兵山市| 西安市| 周口市| 聂拉木县| 麻城市| 盖州市| 祁门县| 永仁县| 沁水县| 甘南县|