在knockoutjs组件中实现继承

时间:2016-01-15 10:40:50

标签: javascript inheritance knockout.js

我一直在浏览Knockoutjs组件(http://knockoutjs.com/documentation/component-overview.html)来创建可重用的小部件。我搜索得足够多但无法找到如何实现继承的示例。例如,假设您有一个基本窗口组件,其他窗口可以从中继承并覆盖这些方法。在Knockout中这可能吗?

1 个答案:

答案 0 :(得分:1)

经常说“Favor composition over inheritance”,但很少练习。我认为它应该在这里发挥作用。继承应该用于扩展。如果你是重写方法,你应该赞成合成。

组件本身就是对象(它们的视图模型)和模板的组合,而不是具有数据和方法的传统对象。

显然,您可以获取viewmodel部分并从中继承或编写包含它的新viewmodel。使用旧模板或新模板创建基于新视图模型的新组件(我没有看到从模板继承的合理方法,尽管您可以编写包含旧模板的新模板)。 p>

简而言之,分别取模板和viewmodel,而不是尝试从组件继承。