$.entends() 学习

1.合并复制对象
var x = { name:”test” };
var y = { age: 18 };
var z = { site: “www.baidu.com” };
// y和z的属性将被合并复制到对象x上
var obj = $.extend( x, y, z );
然后 obj的值
Object {name: “test”, age: 18, site: “www.baidu.com”}

2.如果多个被合并对象有相同的属性,则后者会覆盖之前的属性。

var item = [{
                "text": "1.地址选择"
            }, {
                "text": "2.业务选择"
            },{
                "text": "3.业务办理"
            },{
                "text": "4.确认支付"
            },{
                "text": "5.竣工配送"
            }];
var options={
                "item": item,
                step: 1,
                visited: true,
                afterStep:function(stepObj){
                    var stepVal=stepObj.getStep();
                    $("#JS_STEP_"+stepVal).show().siblings().hide();
                }
            };
var obj = $.extend({}, {
            width: 750,//宽度
            height: 28,//高度
            item: '',//步骤集合
            visited: false,
            afterStep: (function() {})
        }, options);

obj的值
obj {width: 750, height: 28, item: Array[5], visited: true, step: 1}

可以看出因为在options中的属性覆盖了前者的属性

var x = { name:”CodePlayer”, map:{ a: 1, b: 1 } };
var y = { map: { b: 2, c: 2 } };

// 后者的map属性直接覆盖前者的map属性
var obj = $.extend( x, y );

但是如果是这样则不是简单的覆盖

x = { name:”CodePlayer”, map:{ a: 1, b: 1 } };
y = { map: { b: 2, c: 2 } };

// 两者的map属性都是对象,则合并map对象的属性。
obj = $.extend( true, x, y );
这样 obj 中的集合就是 a=1 b=2 c=2


在使用$.extend 有三种情况 
一是有dest参数  var newSrc=$.extend({},src1,src2,src3...)//也就是将"{}"作为dest参数; 例如这种
二 只有一个src 则只用$.extend(src)
三 extend(boolean,dest,src1,src2,src3...)第一个参数boolean代表是否进行深度拷贝 就是如上obj = $.extend( true, x, y );
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值