JS中对象的扩展

一个对JS及前端非常感兴趣的人,希望在这里记录自己的成长!

对象扩展函数:

 1 //方法一:
 2 function extend(target,source) {
 3    
 4       var key;
 5       
 6       for(key in source) {
 7             target[key] = source[key];
 8 
 9       } 
10 
11       return target;
12 }
 1 //方法二:  深度扩展
 2 
 3 function mix(target,source) {   //如果最后参数为布尔型,判定是否覆写同名属性
 4     var args = [].slice.call(arguments), i = 1, key,
 5         ride = typeof args[args.length - 1] == "boolean" ? args.pop() : true;
 6     if(args.length === 1) {   //如果参数只有一个,则创建一个新的对象
 7         target = !this.window ? this : {};
 8         i = 0;
 9     }
10 
11     while((source = args[i++])) {   //多个对象一起合成
12         for(key in source) {  //允许对象糅杂,用户保证都是对象
13             if(ride || !(key in target)) {
14                 target[key] = source[key];
15             }
16          }
17     }
18 
19     return target;
20 }
21 
22 //测试
23 //如果设置为true的话,则如果当前对象存在的属性值,后来的对象拥有同对象的属性值,会覆盖当前的属性,为false,则不覆盖;
24 var obj1 = {
25         name: 'janglu',
26         age: 25
27     },
28     obj2 = {
29         job: 'Front-Engineer',
30         salry: 4000
31     },
32     obj3 = {};
33 mix(obj3,obj1,obj2,true);
34 console.log(obj3);

结果是:

转载于:https://www.cnblogs.com/jlienzen/articles/4188475.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值