/*
* 这是一张 JavaScript 代码草稿纸。
*
* 输入一些 JavaScript,然后可点击右键或从“执行”菜单中选择:
* 1. 运行 对选中的文本求值(eval) (Ctrl+R);
* 2. 查看 对返回值使用对象查看器 (Ctrl+I);
* 3. 显示 在选中内容后面以注释的形式插入返回的结果。 (Ctrl+L)
*/
function extend(o,p){
for(prop in p){
o[prop]=p[prop];
}
return o;
}
function merge(o,p){
for(prop in p){
if(o.hasOwnProperty[prop]) continue;
o[prop]=p[prop];
}
return o;
}
/*
*如果o中的属性在p中没有同名属性,则从o中删除这个属性,返回o
*/
functon restrict(o,p){
for(prop in o){
if(!(prop in p)) delete o[prop];
}
return o;
}
/*
*如果o中的属性在p中有同名属性,则从o中删除这个属性,返回o
*/
function subtract(o, p) {
for (prop in p) {
delete o[prop];//删除一个不存在的属性不会报错
}
}
/*
*通过原型继承创建一个新对象
*/
function inherit(p){
if(p==null) throw TypeError();
if(Object.create)
return Object.create(p);
var t=typeof p;
if(t!=="object"&&t!=="function")throw TypeError();
function f(){};
f.prototype=p;
return new f();
}
/*
*返回一个数组,这个数组包含的是o中可枚举的自有属性的名字
*/
function keys(o){
if(typeof o !=="object")throw TypeError();
var result=[];
for(var prop in o){
if(o.hasOwnProperty(prop))
result.push(prop);
}
return result;
}
转载于:https://my.oschina.net/u/3238650/blog/896258