对象扩展
1 function extend (destination,source) { 2 for(var property in source) 3 destination[property] = source[property]; 4 return destination; 5 }
但旧版本下IE有个人,认为Object原型方法不应该被遍历出来,因此for in 无法遍历 valueOf,toString 属性名。
模式实现Object.keys 解决这个问题;
1 Object.keys = Object.key || function(obj) { 2 var a = []; 3 for(a[a.length] in obj); 4 return a; 5 }