YUI merge学习笔记

merge的作用是将参数的key,value值合并,后面的覆盖前面的,然后统一写入返回值中

如果参数的key是一个引用类型,则传入的是引用类型的地址,所以后面的覆盖会影响到原来的值(也仅仅只影响到最后一个覆盖的值,因为其仅仅指向的是最后一个值的地址)

如果key是一个基本类型,则仅仅只是复制一个值传入,所以后面的覆盖就不会影响到原来的值


YUI().use('node', 'dump', function(Y) {
   var set1 = {foo: true};
   var set2 = {foo: "for"};
   Y.log("1 : "+ Y.dump(set1)); //{foo => true}
   Y.log("2 : "+ Y.dump(set2)); //{foo => for}
   var a = Y.merge(set1, set2); //{foo: "for"}
   Y.log("3 : "+ Y.dump(a));    //{foo => for} 
   a.foo = "kaka";
   Y.log("1 : "+ Y.dump(set1)); //{foo => true}
   Y.log("2 : "+ Y.dump(set2)); //{foo => for}
   Y.log("3 : "+ Y.dump(a));    //{foo => kaka} 


   var set3 = {
    obj:{}
   };
   var copy = Y.merge(set3);
   Y.log("4 : "+Y.dump(copy));  //{obj => {}} 
   set3.obj.mam = "sss";
   Y.log("4 : "+Y.dump(set3));  //{obj => {mam => sss}} 
   Y.log("4 : "+Y.dump(copy));  //{obj => {mam => sss}} 
   Y.log("4 : "+Y.dump(copy.obj));  //{mam => sss} 
   Y.log(copy === set3?"true":"false");         //false
   Y.log(copy.obj === set3.obj?"true":"false"); //true


   var set4 = {
    obj: {
        make: "make"
    }
   };
   var set5 = {
    obj: {
        make: "nomake"
    }
   };
   Y.log("4 : "+Y.dump(set4));  //{obj => {make => make}} 
   Y.log("4 : "+Y.dump(set5));  //{obj => {make => nomake}} 

   var copyhere = Y.merge(set4, set5);
   Y.log("4 : "+Y.dump(set4));  //{obj => {make => make}} 
   Y.log("4 : "+Y.dump(set5));  //{obj => {make => nomake}} 
   Y.log("4 : "+Y.dump(copyhere));  //{obj => {make => nomake}} 

   copyhere.obj.make = "fake";
   Y.log("4 : "+Y.dump(set4));  //{obj => {make => make}} 
   Y.log("4 : "+Y.dump(set5));  //{obj => {make => fake}} 
   Y.log("4 : "+Y.dump(copyhere));  //{obj => {make => fake}} 
});

其中 dump的作用是将一个数组或者对象以字符串的形式返回

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值