JavaScript之再谈对象之枚举对象的工具函数
2018-03-14 23:33
561 查看
在JavaScript中,由于JavaScript的弱类型特征,使得JavaScript变的更加灵活,同样JavaScript中对象也是如此。var o = {
name : "wang",
age : 20,
}
var p = {
name : "zhou",
age1 : 21,
} 以上两个函数为例。
把p中的可枚举属性复制到o中,并返回o,如果o和p中含有同名属性,则覆盖o中的属性,这个函数并不处理getter和setter以及复制属性。
function extend(o,p){
for(var prop in p){
o[prop] = p[prop];
}
return o;
} 将p中的属性复制到o中,返回o,如果o中有属性将不受影响,这个函数并不处理getter和setter以及复制属性。function merge(o,p){
for(var prop in p ){
if(o.hasOwnProperty(prop)){
continue;
}
o[prop] = p[prop];
}
return o;
} 如果o的属性在p中没有同名属性,则从o中删除这个属性并返回。function restrict(o,p){
for(var prop in o){
if(!(prop in p)){
delete o[prop];
}
}
return o;
} 如果o中的属性在p中存在同名属性,则从o中删除这个属性并返回。function subtract(o,p){
for(var prop in o ){
if(prop in p){
delete o[prop];
}
}
return o ;
} 以上是一些方法,下面用上面的方法做一些实例。
返回一个新对象,这个对象同时拥有o的属性和p的属性,如果o和p有重名属性,使用p中的属性。function union(o,p){
return extend(extend({},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 arr = [];
for(var prop in o){
if(o.hasOwnProperty(prop)){
arr.push(prop);
}
}
return arr;
} 在ES5.0中有定义用以枚举属性的函数。
Object.keys()返回数组,数组由对象中可枚举属性组成。console.log(Object.keys(o)); Object.getOwnPropertyNames(),返回对象中所有自有属性的名称,不仅仅是可枚举的属性
console.log(Object.getOwnPropertyNames(o));
喜欢就收藏下。
--主页传送门--
name : "wang",
age : 20,
}
var p = {
name : "zhou",
age1 : 21,
} 以上两个函数为例。
把p中的可枚举属性复制到o中,并返回o,如果o和p中含有同名属性,则覆盖o中的属性,这个函数并不处理getter和setter以及复制属性。
function extend(o,p){
for(var prop in p){
o[prop] = p[prop];
}
return o;
} 将p中的属性复制到o中,返回o,如果o中有属性将不受影响,这个函数并不处理getter和setter以及复制属性。function merge(o,p){
for(var prop in p ){
if(o.hasOwnProperty(prop)){
continue;
}
o[prop] = p[prop];
}
return o;
} 如果o的属性在p中没有同名属性,则从o中删除这个属性并返回。function restrict(o,p){
for(var prop in o){
if(!(prop in p)){
delete o[prop];
}
}
return o;
} 如果o中的属性在p中存在同名属性,则从o中删除这个属性并返回。function subtract(o,p){
for(var prop in o ){
if(prop in p){
delete o[prop];
}
}
return o ;
} 以上是一些方法,下面用上面的方法做一些实例。
返回一个新对象,这个对象同时拥有o的属性和p的属性,如果o和p有重名属性,使用p中的属性。function union(o,p){
return extend(extend({},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 arr = [];
for(var prop in o){
if(o.hasOwnProperty(prop)){
arr.push(prop);
}
}
return arr;
} 在ES5.0中有定义用以枚举属性的函数。
Object.keys()返回数组,数组由对象中可枚举属性组成。console.log(Object.keys(o)); Object.getOwnPropertyNames(),返回对象中所有自有属性的名称,不仅仅是可枚举的属性
console.log(Object.getOwnPropertyNames(o));
喜欢就收藏下。
--主页传送门--
相关文章推荐
- 用来枚举属性的对象工具函数
- JQuery操作Javascript对象和数组的工具函数总览
- JQuery 操作Javascript对象和数组的工具函数小结
- JQuery操作Javascript对象和数组的工具函数总览
- JavaScript之枚举属性的对象函数
- JQuery操作Javascript对象和数组的工具函数总览(转)
- 枚举JavaScript对象的函数
- 6.1 枚举对象属性的工具函数
- 枚举JavaScript对象的函数
- JQuery 操作Javascript对象和数组的工具函数小结
- 探究javascript对象和数组的异同,及函数变量缓存技巧
- Javascript中的函数(Function)与对象(Object)的关系
- javascript Arguments对象——函数的实际参数
- 轻松学习 JavaScript——第 4 部分:函数中的 arguments 对象
- HTML、CSS和JavaScript学习三(JavaScript之语法规则:语句、数组、函数、String\Math\Array等对象)
- 通过 prototype 为 JavaScript 的 String 对象添加方法(函数)
- javascript对象和函数的几种常见写法
- C# javascript 对象转换(Eval 函数)
- JavaScript进阶 函数、定义函数、函数应用、对象