在扩展Knockout的功能时,何时使用“fn”使用自定义绑定vs扩展器与自定义功能是否合适?选择一个而不是另一个会对性能产生影响吗?
答案 0 :(得分:13)
当您尝试完成的功能涉及UI和数据时,通常需要选择自定义绑定,因此您需要访问元素,通常需要一些数据来控制如何处理元素。
此时,扩展程序与添加.fn
之间确实没有太大区别。在通过.fn
提供共享功能之前,扩展程序已稍微添加到KO。
这通常不是问题,但扩展器只适用于可观察量和计算可观察量。使用.fn
,您需要将功能添加到ko.subscribable.fn
,以便两者都可以使用。但是,在某些情况下,您的功能可能仅适用于其中一种,因此使用ko.observable.fn
和ko.computed.fn
将是更好的选择。
我发现扩展.fn
是最干净的语法。如果您确定要包装this
或新类型,那么您可以轻松支持链接。扩展器更加明确,并确保类型的API表面区域保持精简(为此值得)。