扩展小部件的方法是什么?
What is the way to extend a widget?
我想问一下,如果我们想修改或扩展现有 jquery 小部件的一部分(如日期选择器、数据表),最好的方法是什么?
我不太确定是否可以应用某种继承概念,或者如果修改原始概念是否会更好?
回答这样的问题最重要的因素是你对未来的期望/要求是什么。
由于您的问题是关于并非专门设计用于扩展的模块,因此它们不遵守支持此类用法的规则。这意味着未来的版本可能会改变任何东西,从内部行为一直到方法/属性/事件名称。
如果您选择修改现有代码或通过继承扩展它,只要您不关心未来的版本,都没有什么区别。选择更容易的路线(当然要考虑所有法律问题)。
如果您确实关心未来的版本,可能很想选择基于继承的解决方案,以便将来对继承模块的更新可能 "transparent" 到您的扩展,但这就是风险所在。如果您不强迫自己全面检查更改的内容,您将永远不知道事情是否仍按预期进行。
另一方面,选择修改现有代码意味着任何未来版本都需要重新进行相同的修改,但这会迫使您验证它是否有意义。
我想问一下,如果我们想修改或扩展现有 jquery 小部件的一部分(如日期选择器、数据表),最好的方法是什么?
我不太确定是否可以应用某种继承概念,或者如果修改原始概念是否会更好?
回答这样的问题最重要的因素是你对未来的期望/要求是什么。
由于您的问题是关于并非专门设计用于扩展的模块,因此它们不遵守支持此类用法的规则。这意味着未来的版本可能会改变任何东西,从内部行为一直到方法/属性/事件名称。
如果您选择修改现有代码或通过继承扩展它,只要您不关心未来的版本,都没有什么区别。选择更容易的路线(当然要考虑所有法律问题)。
如果您确实关心未来的版本,可能很想选择基于继承的解决方案,以便将来对继承模块的更新可能 "transparent" 到您的扩展,但这就是风险所在。如果您不强迫自己全面检查更改的内容,您将永远不知道事情是否仍按预期进行。
另一方面,选择修改现有代码意味着任何未来版本都需要重新进行相同的修改,但这会迫使您验证它是否有意义。