所以我使用$ .extend来组合多个组件(对象)。其中一些组件具有使用相同密钥的功能。我希望最终的扩展对象具有相同的键,但是它指向一个函数,它依次调用所有合并的组件版本。jQuery使用相同的函数扩展多个对象
所以它会是这个样子:
var a = { foo: function() { console.log("a"); } };
var b = { foo: function() { console.log("b"); } };
var c = {}; // Doesn't have foo
var d = $.extend({}, a, b, c);
var e = $.extend({}, a, c);
var f = $.extend({}, c);
d.foo(); // Should call function() { console.log("a"); console.log("b"); }
e.foo(); // Should call function() { console.log("a"); }
f.foo(); // Should call function() {}
是否有这样做的一个务实的方式?我只想对特定的一组键进行此操作,因此我只想将这些特定键的功能合并在一起,并让顺序覆盖其他任何内容。
希望这是有道理的:S
谢谢!我希望能够在返回的对象上调用foo,而不管组件是否包含它。我将不得不更深入地了解你的答案,但似乎我可以使用你的解决方案,但只是在虚拟函数foo中不存在的情况下添加虚拟函数f – Andrew 2014-10-03 19:24:47
欢迎您:)是的。谢谢 – guest271314 2014-10-04 15:36:38