级联和链接之间的区别是什么
what is the difference between cascading and chaining
我刚从一个论坛上找到关于级联的。问题是级联在粪便中意味着什么。我试图在谷歌上找到答案,也试图找到一些其他关于if的stackoverflow线程,但我做不到。我刚找到这个链接http://en.wikipedia.org/wiki/Method_cascading
我知道什么是链接,我在javascript、jquery和其他语言中使用过它,但我不理解链接和级联之间的区别。有人能帮我吗?或者有人能提供一些有用的链接吗?
Chaining是返回下一次调用中使用的方法调用结果的地方。
c#
Enumerable.Range(0,10).Skip(1).Aggregate(myList.First(),(result,listItem) => result += listItem));
//results in 45 being returned
当返回this
时,可以通过使用链接来实现级联(有时很难区分两者)。jQuery就是这么做的。
jquery
$("#myId").css("background-color","blue").fadeIn().fadeOut();
//results in $("#myId") being returned
您链接的维基百科页面上的定义非常清晰:
给定一个方法调用a.b(),在执行调用后,方法级联将此表达式计算到左侧对象a(如果发生了变异,则使用其新值),而方法链接将此表达式评估到右侧对象。
这意味着,a.b()
使用方法级联返回一个突变的a
实例。a.b()
通过方法链接返回与b()
不同的内容。
所以,这就是级联方法:
class YourClass {
public YourClass b() {
// do stuff
return this;
}
public YourClass c() {
// do stuff
return this;
}
}
允许:CCD_ 6。
这就是方法链接:
class YourClass {
public SomeOtherObject b() {
// do stuff
return new SomeOtherObject(this);
}
}
class SomeOtherObject {
private YourClass _owner;
public SomeOtherObject(YourClass owner) {
_owner = owner;
}
public void c_onOtherObject() {
}
}
允许:CCD_ 7。
编辑:我回滚了以前的编辑。看起来上面的内容是正确的,而且术语没有被错误地翻转。
相关文章:
- 这是什么 ==- javascript 运算符
- 我的单元测试选项是什么
- 打破承诺链的好方法是什么
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- Javascript中的空白是什么
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- 在JavaScript中拆分日期字符串的更好方法是什么
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- 处理浮点错误的最佳方法是什么
- javascript导入的最佳实践是什么
- 基于窗口宽度jquery的函数的替代方法是什么
- 在ng重复循环中显示条件内容的最佳方式是什么
- 我的客户端选项是什么
- 这是什么“;要求“;事情
- 未捕获的类型错误:topFrame.window.changeSelectedBarStyle不是函数,原因是什么
- 实现比较方法的最佳实践是什么;s的比较类型是在运行时选择的
- @@(“at at”)在ES6 JavaScript中是什么意思
- knex:根据结果创建数组的合适方法是什么
- emu -model、emu -restless和emu之间的主要区别(优缺点)是什么?
- function()在jQuery中是什么意思?这个和$(这个)有什么区别