extend
第 一個參數可以對象 也可以是布爾 (如果是布爾值表示是否深度便利)
如果是一個對象則 擴展到原來的對象上去
如果是多個對象 則每個對象都擴展到原來的對象上去
var wt = function(){
};
wt.extend = function() {
var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options;
//根據第一個參數來判斷是否深度遍歷
if ( typeof target === "boolean" ) {
deep = target;
target = arguments[1] || {};
i = 2;
}
if ( typeof target !== "object" )
target = {};
//如果只有一個遍歷對象 (在有判斷深度遍歷的時候 i=2了 這時是2個以上參數 遍歷對象從地2個開始)
// 用 target引用wt
if ( length == i ) {
target = this;
--i;
}
for ( ; i < length; i++ )
if ( (options = arguments[ i ]) != null )
for ( var name in options ) {
var src = target[ name ], copy = options[ name ];
if ( target === copy )
continue;
//如果他們引用的同一個對象 跳出循環 避免重複遍歷
if ( deep && copy && typeof copy === "object" && !copy.nodeType )
target[ name ] = wt.extend( deep,
src || ( copy.length != null ? [ ] : { } )
, copy );
//進行深度遍歷
else if ( copy !== undefined )
target[ name ] = copy;
}
return target;
};
each
有3個參數 第一個是集合 可以是數組,對象,元素集合(如document.body.getElementsByTagName('div'))
第2個參數是函數 就是每次便利的時候需要執行的函數
如果不帶第3個參數arg
且如果第一個參數是obj callbacl的第一個參數是 屬性名 第二個是屬性直
如果第一個參數是 數組or元素集合 則第一個參數某項的索引 第2個參數是直
第3個參數 是指callback的所需要的參數 可以爲空 且必須爲數組
browser
判斷瀏覽器的類型 根據window.navigator.userAgent字符串來判斷瀏覽器的類型
param
返回一個參數的字符串形式
Ajax之jsonp和script部分
創建一個script標籤 和一個回調函數 返回一個json數據
ready
也就是$(document).ready中的 ready
在非ie瀏覽器中 document 的 DOMContentLoaded 方法 可以DOM結構加載完畢之後觸發
在ie中 可以用 執行document.documentElement.doScroll("left")
因爲沒有再加完的時候是會拋出異常的 所以可以不停的重複執行 直到加載成功.
data
應該緩存 或者是保存數據的機制