这个API设计模式有名称吗?

7

jQuery 和 MathBox 都有查询函数($()select()),它们返回带有方法的对象,这些方法作用于所有查询实体。例如:$().addClass()

这种模式有名称吗?


2
我听说过人们因为它的行为将jQuery称为单子 - Sebastian Simon
1
但我猜你的意思只是称为“包装器”。 - Sebastian Simon
1
现在我正在深入研究FP编程。 - bgoosman
2个回答

2
我一直听说过jQuery API风格被称为“流畅API”,或者正如维基百科所说的:“流畅接口”。
请查看https://en.wikipedia.org/wiki/Fluent_interface#JavaScript 然而,它主要涉及方法链接,通常用于构建查询或转换链。方法执行的操作和它们对所处理实体的影响取决于应用程序域。
对于jQuery来说,它类似于组合模式:可以透明地在单个实体或多个实体集合上应用操作,使用相同的接口。与经典的组合设计模式不同之处在于,我们谈论的不是纯面向对象编程(OOP),而是更接近函数式编程,其中返回值总是转发API,但具有新状态。
请查看https://en.wikipedia.org/wiki/Composite_pattern

1

它被称为高阶函数

高阶函数是指任何在执行时返回函数、将一个或多个函数作为其参数之一或两者都具备的函数。如果您已使用过任何数组方法,如map或filter,或将回调函数传递给jQuery的$.get,则已经使用过高阶函数。

参考


1
我认为这并不适用于jQuery函数本身,至少它返回一个附加了函数的对象,而不是直接的函数。 - ryanwebjackson
1
jQuery函数返回一个带有附加函数的对象,因此它实际上不符合高阶函数的定义。 - bgoosman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接