在扩展Knockout的功能时,什么时候使用自定义绑定、扩展器和使用"fn“的自定义函数是合适的?当选择一个而不是另一个时,是否会有性能影响?
发布于 2012-04-26 21:32:26
当您试图实现的功能同时涉及UI和数据时,您通常会希望选择自定义绑定,因此您需要访问元素,通常还需要访问一些数据来控制对元素的操作。
在这一点上,扩展器和添加到.fn
之间并没有太大的区别。在共享功能通过.fn
可用之前,扩展器被添加到KO中。
这通常不是问题,但扩展器只适用于可观测对象和计算可观测对象。使用.fn
时,您需要向ko.subscribable.fn
添加函数,以便两者都可以使用。但是,在某些情况下,您的功能可能只适用于其中之一,因此使用ko.observable.fn
和ko.computed.fn
将是更好的选择。
我发现扩展.fn
是最干净的语法。如果您确定返回this
或包装它时返回一个新类型,那么您可以轻松地支持链接。扩展器更明确一点,并确保类型的API外围区域保持精简(无论其价值如何)。
https://stackoverflow.com/questions/10334023
复制相似问题