种子模块
1.命名空间
IIFE 防止变量污染
2.对象扩展
javascript 属性描述符 (Property Descriptor) 之前
function extend(desination, source){
for(var property in source){
desination[property]= source[property];
}
return desination;
}
//massFrameWork mix 方法
function mix(target, source){
var args= [].slice.call(arguments),i=1, key,
ride= typeof args[args.length-1]== "boolean"? args.pop(): ture;
if(args.length ===1){
target= !this.windows?this:{};
i=0;
}
while((source=args[i++])){
for(key in source){
if(ride || !(key in target){
target[key]= source[key];
}
}
}
}
- 数组化
通常 [].slice.call 就能转化 数组
//jquery makyarray
var markArray = function(array){
var ret =[];
if(array!=null)
{
var i= array.length;
if(i ==null || type array==="string" || Jquery.isFunctoin(array)){
ret[0]= array;
}else{
while(i){
ret[--i]= array[i];
}
}
return ret;
}
}
4.类型判断
javascript 两套类型系统, 一套是基本数据类型, 另外一套是对象类型系统,基本类型分为6种, undefined, string, null, boolean, function, object. 基本类型 通过typeof 判断, 对象类型 是以基本类型为基础的,通过instanceof 来判断。 javascript 这两套识别系统不靠谱。
typeof null// object
typeof docuemnt.childNodes // safari "fucntion"
instanceof 只要原型链上存在此对象的结果 就返回true.
5 . 主流框架引入的机制- domReady
6 . 无冲突处理