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

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都会被过滤掉 函数名,如下:

https://img3.mukewang.com/5c8f0b1d0001c37c05670182.jpg

月关宝盒
浏览 363回答 2
2回答

噜噜哒

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

偶然的你

不知道你是怎么写的,使用$.extend不会过滤掉函数啊,使用$.extend的深拷贝试试: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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript