【发布时间】:2021-03-11 07:24:03
【问题描述】:
我不知道如何写标题,所以我会更详细地介绍。
我想做的是有一个名为car的对象。
car 对象包含两个名为 tire 和 engine 的对象。
我想要发生的事情是能够说,
car.start();
然后我希望汽车对象能够同时检查 tire 和 engine 以查看它是否包含具有该名称的函数然后调用它。
总结一下
我希望能够调用一个对象并将该对象传递给实现该函数调用的任何人。
我查看了代理模式,但不知道如何动态地将函数调用从对象传递到嵌套对象。
任何想法将不胜感激。谢谢!
示例代码
function engine() {
return {
start: () => console.log('start')
}
}
function tire() {
return {
getWidth: () => console.log('get width')
}
}
function car() {
this.tire = new tire();
this.engine = new engine();
// Pass on function calls made to car over to tire or engine depending on who implemented that function call.
}
// This should print start.
car.start();
**PS。 ** 我知道我可以对函数调用进行硬编码并让它通过,但我正在尝试动态地执行此操作,因此我不必声明每个可以调用的函数。所以我想动态地做到这一点。
【问题讨论】:
-
也许stackoverflow.com/questions/9779624/… 就是您要找的。span>
-
您的原始问题标题中包含 Design Patterns - 从这个角度来看,您正试图在不支持它的语言中创建多重继承。我不明白为什么代理不起作用。
-
查看另一个网站的代理设计模式示例,这些功能只是硬编码的。这并没有告诉我如何动态地传递函数。 @fblundun 链接的堆栈溢出问题是我想到的。我不知道代理对象存在。
标签: javascript design-patterns software-design