Javascript中的方法链(Method Chaining)介绍
网络编程 2021-07-04 21:47www.168986.cn编程入门
这篇文章主要介绍了Javascript中的方法链(Method Chaining)介绍,本文讲解了Javascript Method Chaining、Method Chaining 使用、Method Chaining VS prototype Chaining等内容,需要的朋友可以参考下
在寻找如何设计一个Javascript API的时候,发现了Method Chaining这个东西,方法链,看上去似乎很强大,也挺有意思的,而这个东西也是过去我们经常看到的。。
Javascript Method Chaining
在维基百科上有这样的解释:
代码如下:
Method chaining, also known as named parameter idiom, is a mon syntax for invoking multiple method calls in object-oriented programming languages. Each method returns an object, allowing the calls to be chained together in a single statement.Chaining is syntactic sugar which eliminates the need for intermediate variables. A method chain is also known as a train wreck due to the increase in the number of methods that e one after another in the same line that ours as more methods are chained togethe even though line breaks are often added between methods.
拿翻译工具翻译了一下:
代码如下:
方法链,也被称为命名参数法,是在面向对象的编程语言调用的调用多个方法的通用语法。每一个方法返回一个对象,允许电话连接到一起,在一个单一的声明。链接是语法糖,省去了中间变量的需要。方法链也被称为火车残骸中由于方法来相继发生的同一行以上的方法都锁在即使换行通常添加方法间的数量增加。
Method Chaining 使用
目测对于方法链用得最多的,应该就是jQuery了。
代码如下:
// chaining
$("#person").slideDown('slow')
.addClass('grouped')
.css('margin-left', '11px');
我们可以用这样的用法来调用这个。jQuery严重依赖于链接。这使得它很容易调用的几个方法相同的选择。这也使得代码更清晰和防止执行相同的选择几次(提高性能)。没有方法链的时候则是狼蚁网站SEO优化的样子
代码如下:
var p = $('#person');
p.slideDown('slow');
p.addClass('grouped');
p.css('margin-left', '11px');
看上去和设计模式中的builder很像,不同的是,这里的p是方法,而不是一个类。
Javascript 方法链示例
在之前我们说到的时候,说到的print('Hello')('World'),而这种用法的结果可能会变成这样子。
代码如下:
function f(i){
return function(e){
i+=e;
return function(e){
i+=e;
return function(e){
alert(i+e);
};
};
};
};
f(1)(2)(3)(4); //10
这是网上的一个例子,也是我上一次写链式调用的作法。看上去弱爆了。
代码如下:
var func = (function() {
return{
add: function () {
console.log('1');
return{
result: function () {
console.log('2');
}
}
}
}
})();
func.add().result();
实际上应该在每个function都要有个return this,于是就有了:
代码如下:
Func = (function() {
this.add = function(){
console.log('1');
return this;
};
this.result = function(){
console.log('2');
return this;
};
return this;
});
var func = new Func();
func.add().result();
我们也可以将的两句
代码如下:
var func = new Func();
func.add().result();
变成
代码如下:
new Func().add().result();
其他
作为一个迷惑的地方的小比较:
Method Chaining VS prototype Chaining
原型链与方法链在某些方面上是差不多的,不同的地方或许在于
1.原型链是需要用原型
2.方法链则是用方法
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程