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
应该缓存 或者是保存数据的机制