问题标签 [method-chaining]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
42435 浏览

javascript - jQuery中的链接选择器

我是一个习惯于 mootools 链接选择器的人,我似乎无法在任何地方找到如何在 jQuery 中做同样的事情。假设我在变量中有一个选择元素。selectObj我需要的是获得该选择中的最后一个选项。在 mootools 我会做类似的事情:

我可以做类似的事情,或者option在 jQuery 中获得最后一个的方法是什么?

PS。我知道parent > child 选择器,但我不能真正使用它,因为我不知道使用什么选择器来获取select. 我只有结果元素。

0 投票
2 回答
2402 浏览

eclipse - Eclipse 可以生成方法链设置器吗

我想生成方法链接设置器(返回被设置对象的设置器),如下所示:

这使得单行实例化变得更容易,我发现它更容易阅读:

可以修改 Eclipse 的模板来执行此操作吗?我已更改要包含的内容,return this;但签名未更改。

0 投票
1 回答
313 浏览

ruby-on-rails - 如何在 Rails 中链接 AJAX 调用?一系列要执行的调用,取决于第一次调用的结果

我有一个 AJAX 调用,它会提取一些初始数据。基于这些数据,我想触发一系列 AJAX 调用,更新页面的不同部分。它可以使用 JS 来完成,使用 XMLHttpRequest 和 onreadystatechange,检查状态。如果第一次调用完成并且响应为 200,我可以触发一系列 AJAX 调用。

如何在 Rails 中做同样的事情?还是我应该只写普通的 JS(我是 Rails 新手)?

0 投票
5 回答
7554 浏览

java - 方法链 + 继承不能很好地结合在一起?

这个问题是在 C++ 上下文中提出的,但我对 Java 很好奇。对虚拟方法的担忧不适用(我认为),但如果你有这种情况:

在这种类层次结构中,有没有办法以this不(有效)向上转换对象类型的方式返回?

0 投票
5 回答
29465 浏览

javascript - 基本的对象/函数链接如何在 javascript 中工作?

我正在尝试直接在脑海中了解执行 jQuery 风格的函数链接的原则。我的意思是:

我有一个例子可以工作,而另一个没有。我会在下面发布这些。我总是想学习一些东西是如何工作的首要原则,这样我就可以在它之上进行构建。到目前为止,我对链接的工作原理只有粗略和松散的了解,并且遇到了无法智能排除故障的错误。

我知道的:

  1. 函数必须返回自己,也就是“return this;”
  2. 可链接的函数必须驻留在父函数中,也就是在 jQuery 中,.css() 是 jQuery() 的子方法,因此 jQuery().css();
  3. 父函数应返回自身或自身的新实例。

这个例子有效:

但是这个没有:

0 投票
18 回答
80398 浏览

oop - 方法链接 - 为什么这是一个好习惯,或者不是?

方法链接是对象方法返回对象本身以便为另一个方法调用结果的做法。像这样:

这似乎被认为是一种很好的做法,因为它产生了可读的代码或“流畅的界面”。然而,对我来说,它似乎打破了面向对象本身隐含的对象调用符号 - 生成的代码并不代表对先前方法的结果执行操作,这就是面向对象代码通常预期的工作方式:

这种差异设法为“调用结果对象”的点表示法创建了两种不同的含义:在链接的上下文中,上面的示例将读取为保存参与者对象,即使该示例实际上是为了保存计划getSchedule 接收到的对象。

我知道这里的区别在于被调用的方法是否应该返回某些东西(在这种情况下,它会返回被调用的对象本身以进行链接)。但这两种情况与符号本身没有区别,仅与被调用方法的语义不同。当不使用方法链接时,我总是可以知道方法调用对与前一次调用的结果相关的东西进行操作- 使用链接,这个假设会被打破,我必须在语义上处理整个链以了解实际对象是什么所谓真的是。例如:

最后两个方法调用引用 getSocialStream 的结果,而前面的调用引用参与者。也许在上下文发生变化的地方实际编写链是不好的做法(是吗?),但即使那样,您也必须不断检查看起来相似的点链是否实际上保持在相同的上下文中,或者只处理结果.

在我看来,虽然方法链接在表面上确实产生了可读的代码,但重载点符号的含义只会导致更多的混乱。因为我不认为自己是编程大师,所以我认为是我的错。所以:我错过了什么?我是否理解方法链接有些错误?在某些情况下方法链接特别好,或者有些情况特别糟糕?

旁注:我理解这个问题可以被解读为一种被掩盖为问题的观点陈述。然而,事实并非如此——我真的很想理解为什么链接被认为是好的实践,以及我认为它破坏了固有的面向对象表示法的错误在哪里。

0 投票
5 回答
590 浏览

php - PHP 方法链 - 反射?

是否可以通过一系列方法调用来确定您在调用链中的哪个位置?至少,是否有可能辨别一个方法是否是链中的最后一个调用?

是否可以使用返回对象实例的属性来做同样的事情?

0 投票
6 回答
1063 浏览

c# - 有没有一种简单而优雅的方法可以让 ICollection 在 C# 中更流利?

示例:我想要一个自定义集合类的Add方法ICollection来实现方法链接和流利的语言,所以我可以这样做:

我可以想到一些选项,但它们很混乱,并且涉及将 ICollection 包装在另一个界面中等等。

0 投票
5 回答
2570 浏览

javascript - JavaScript 方法链挑战

(这个问题并不局限于语言,所以请随时提交其他语言的解决方案。)

我只是想知道是否可以在 JavaScript 中编写类似这样的内容:

传统方式是在哪里写

对不起,如果这是一个菜鸟问题:p

0 投票
7 回答
3571 浏览

javascript - 是什么决定了 jQuery 链中方法的执行顺序?

HTML 代码

jQuery 代码

预期结果

单击#bar 时

  1. 隐藏p元素#foo
  2. 附加p#bar
  3. 显示p现在是#bar

实际结果

  1. 附加p#bar
  2. 隐藏p元素#foo
  3. 显示p现在是#bar

问题

  • 是什么决定了 jQuery 链中方法的执行顺序?
  • 如何确保每个事件在下一个事件开始之前完成?