javascript 函数链接,链成员无需相互了解

标签 javascript coffeescript chain

我想创建一个 JavaScript 管道,例如 powershell、bash (|) 或 f# (|>)。 IE。相当于

getstuff() | sort() | grep("foo") | take(5)

我在coffeescript论坛上看到了关于这个问题的讨论,但最终他们搁置了它,因为每个人都说你可以用函数链做同样的事情。但据我所知,requires getstuff 返回的东西有一个排序方法; sort 方法必须返回具有 grep 方法的内容等。这是相当严格的,因为它要求所有潜在的管道成员提前相互了解。我知道 JavaScript 有一些非常聪明的技巧,而我仍然处于 101 级 - 所以这可行

getstuff().sort.().grep().take()

没有这个限制

最佳答案

is this doable

getstuff().sort.().grep().take()

without that constraint

没有。

<小时/>

I like short answers! Can you suggest any way that something like it could be done

在较高的层次上,您可以执行类似于 jQuery 在幕后执行的操作来允许链接。创建一个类似数组的包装对象类型,其中包含您希望能够调用的所有函数;除了显式传递的参数之外,每个连续的链式调用还可以在内部堆栈上进行操作。

并不是要继续打败 jQuery 的死马,而是理解我正在谈论的内容的最佳方法之一就是开始挖掘 jQuery core source code并弄清楚链接是如何工作的。

关于javascript 函数链接,链成员无需相互了解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7264179/

相关文章:

python - Pandas 链索引的替代方案是什么?

django - 为什么 Celery 只运行链中的第一个任务?

javascript - 如何为 PHP 部分处理指定 ajax 调用

javascript - JavaScript 可以使用多少内存?

coffeescript - 为什么CasperJS表单提交不重定向到下一页?

javascript - d3.js 数据绑定(bind)需要唯一键来存储 csv 文件中的重复条目

javascript - 单击事件触发两次(不是 jQuery)

javascript - 如何检查是否存在可观察到的 knockout ?

javascript - CoffeeScript 中的异步映射

ssl - Kafka,为什么在使用 kafka-console- Producer (或 Kafkcat )进行测试时需要传递证书链而不仅仅是根 ca