为了账号安全,请及时绑定邮箱和手机立即绑定

求问,怎么合并拷贝对象值为函数名的情况?

求问,怎么合并拷贝对象值为函数名的情况?

月关宝盒 2019-03-15 19:15:31
var setting={        data: {            keep: {                parent: true,                leaf: true             }        },        check: {            enable: true         },        callback: {            onCheck: zTreeOnCheck,   //函数名            beforeClick: zTreeBeforeClick, //函数名            onRemove: zTreeOnRemove //函数名        },        view: {            showIcon: false,             showLine: false,             addDiyDom: addDiyDom //函数名        }    };现在我要把 setting 这个对象跟另外一个对象(暂时就是一个空对象吧,{})合并,求问可以解决吗?使用一般的克隆函数,$.extend都会被过滤掉 函数名,如下:
查看完整描述

2 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

Object.assign()

注意:Object.assign()拷贝的是属性值。假如源对象的属性值是一个指向对象的引用,它也只拷贝那个引用值。


查看完整回答
反对 回复 2019-03-18
?
偶然的你

TA贡献1841条经验 获得超3个赞

不知道你是怎么写的,使用$.extend不会过滤掉函数啊,使用$.extend深拷贝试试:

https://img1.sycdn.imooc.com//5c8f0b2d00012bc804040034.jpg

let zTreeOnCheck = function() {}

let zTreeBeforeClick = function() {}

let zTreeOnRemove = function() {}

let addDiyDom = function() {}


var setting={

  data: {

    keep: {

    parent: true,

      leaf: true 

    }

  },

  check: {

    enable: true 

  },

  callback: {

    onCheck: zTreeOnCheck,   //函数名

    beforeClick: zTreeBeforeClick, //函数名

    onRemove: zTreeOnRemove //函数名

  },

  view: {

    showIcon: false, 

    showLine: false, 

    addDiyDom: addDiyDom //函数名

  }

};

let setting1 = {

  callback: {

    onCheck: function onCheck(){console.log('on check')},

    hello: function hello(){console.log('hello')}

  }

}

let hello = $.extend(true, {}, setting, setting1) // 深拷贝

console.log(hello)

https://img1.sycdn.imooc.com//5c8f0b340001254607220248.jpg

查看完整回答
反对 回复 2019-03-18
  • 2 回答
  • 0 关注
  • 362 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信