合并两个带有功能的选项对象

问题描述

我计划合并两个包含方法的对象:

var options = {
    show: function() {
        console.log(1);
    }
}

var options2 = {
    show: function() {
        console.log(3);
    }
}

options = $.merge(options,options2);

但是,如果我console.log(options.show)只能接收第一个数组。

我的问题是,如何将options数组与options2合并?

解决方法

您可以在第一个功能块中调用其他函数

var options = {
    show: function() {
        console.log(1);
        options2.show();
    }
}

var options2 = {
    show: function() {
        console.log(3);
    }
}

options.show();

,

由于具有“相同属性”的名称,因此合并时它们将被覆盖。 使用解构并重命名,var C = A.map((x,i) => Object.assign(x,B[i]) ) 应该起作用。

Object.assign

,

您可能想要这样的东西

var options = { show: function () { console.log(1); },};
var options2 = { show: function () { console.log(3); },};
res = Object.entries(options).map((o) => ({ [o[0]]: [o[1],options2[o[0]]] }));
console.log(res[0]);
console.log(res[0].show)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...