ホームページ  >  記事  >  ウェブフロントエンド  >  各関数の JavaScript 実装コード_JavaScript スキル

各関数の JavaScript 実装コード_JavaScript スキル

WBOY
WBOYオリジナル
2016-05-16 18:37:051504ブラウズ
コードをコピー コードは次のとおりです。

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 != argument.callee) {
// ターゲットが forEach メソッドを実装している場合は、独自の forEach メソッドを使用します(標準ブラウザの Array オブジェクトなど)
object.forEach(block, context);
return;
} else if (typeof object.length == "number") {
// Ifこれは、IE の配列オブジェクトまたは配列オブジェクトです。
_Array_forEach(object, block, context);
return
}
}
_Function_forEach(fn || Object, object, block,コンテキスト);
};
関数 _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) {
// ローカル プロパティのみをスキャンします
if ( object.hasOwnProperty(key)) {
//block(object[key], key) と同等
block.call(context, object[key], key, object);
}
};


原作者によるいくつかの例 (壁を飛び越えました! ):


コードをコピー コードは次のとおりです: function print(el,index) {
alert(index " : " el)
}
forEach ([1, 2, 3], print);
forEach ({a: "aa", b: "bb", c: " cc"}, print);
forEach ("Situ Zhengmei", print);
forEach(document.styleSheets,function(el){
if(el.href) warning(el. href)
});





[Ctrl A すべて選択 注: 外部 Js を導入する必要がある場合は、更新して実行する必要があります ]

コードをコピーします コードは次のとおりです:
function person(name, age) {
this.名前 = 名前 || "";
this.age = 年齢
};
var fred = 新しい人; ;
fred. language = "English";//非常に遅いバインディング
fred.wife = "Wilma";//非常に遅いバインディング
forEach(fred,print)





[Ctrl A すべて選択 注: 外部 Js を導入する必要がある場合は、 を実行するために更新する必要があります]
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。