您的位置:首页 > Web前端 > JavaScript

JavaScript对象的常用函数

2016-05-04 21:48 459 查看
/**
*
* 把p中可枚举的的属性复制到o中,并返回o
* 如果o和p中含有同名属性,则覆盖o中的属性。
* 这个函数并不处理getter和setter以及复制属性
*
*/
function extend(o, p) {
for (prop in p) {
o[prop] = p[prop];
}
return 0;
}

/**
* 将p中的可枚举属性复制到o中,并返回o
* 如果o和p中有同名的属性,o中的属性将不受影响
* 这个函数并不处理getter和setter以及复制属性
*/

function merge(o, p) {
for (prop in p) {
if (o.hasOwnProperty[prop]) continue; //如果o已经有这个属性
o[prop] = p[prop];
}
return o;
}

/**
* 如果o中的属性在p中没有同名属性,则从o中删除这个属性
* 返回o
*/
function 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];
}
return o;
}

/**
* 返回一个新对象,这个对象同时拥有o的属性和p的属性
* 如果o和p中有重名属性,使用p的属性值
*/
function union(o, p) {
return extend(extend({}, o), p);
}

/**
* 返回一个新对象,这个对象拥有同时在o和p中出现的属性
* 很像o和p的交集,但p中属性的值被忽略
*/
function intersection(o, p) {
return restrict(extend({}, o), p)
}
/**
* 返回一个数组,这个数组包含的是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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript 对象