ホームページ  >  記事  >  ウェブフロントエンド  >  jQueryの簡単な例 extend_jquery

jQueryの簡単な例 extend_jquery

WBOY
WBOYオリジナル
2016-05-16 17:22:111051ブラウズ

コードをコピー コードは次のとおりです:

jQuery.extend = jQuery.fn.extend = function() {
var options, name, src, copy, copyIsArray, clone,
target = argument[0] || {},
i = 1,
length = argument.length,
deep = false;

// ディープ コピーの状況を処理します
if ( typeof target === "boolean" ) {
deep = target;
target = argument[1] || {};
// ブール値とターゲットをスキップします
i = 2;
}

// ターゲットが文字列または何かである場合の処理​​(ディープコピーで可能)
if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
target = {} ;
}

// 引数が 1 つだけ渡される場合は jQuery 自体を拡張します
if ( length === i ) {
target = this;
--i;
}

for ( ; i < length; i ) {
// null 以外/未定義の値のみを処理します
if ( (options = argument[ i ]) != null ) {
/ / 基本オブジェクトを拡張します
for ( name in options ) {
src = target[ name ];
copy = options[ name ];

// 終わりのないループを防ぐ
if ( target === copy ) {
continue;
}

// プレーンオブジェクトまたは配列をマージする場合は再帰
if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) {
もし( copyIsArray ) {
copyIsArray = false;
clone = src && jQuery.isArray(src) ?ソース: [];

} else {
clone = src && jQuery.isPlainObject(src) ?ソース: {};
}

// 元のオブジェクトは決して移動せず、複製してください
target[ name ] = jQuery.extend( deep, clone, copy );

// 未定義の値を取り込まないでください
} else if ( copy !== unknown ) {
target[ name ] = copy;
}
}
}
}

// 変更されたオブジェクトを返します
return target;
};

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。