JavaScript 链式调用
我们使用jquery的时候,jquery的简单的语法及可实现链式调用方法,现在我们自己也封装一个链式调用的方法,来理解下 jquery中如何封装链式调用 无非就是每次调用一个方法的时候 给这个方法返回this即可,this指向该对象自身,我们看看代码:
1 // 定义一个简单的对象,每次调用对象的方法的时候,该方法都返回该对象自身
2 var obj = {
3 a: function(){
4 console.log("输出a");
5 return this;
6 },
7 b:function(){
8 console.log("输出b");
9 return this;
10 }
11 };
12 console.log(obj.a().b()); // 输出a 输出b 输出this指向与obj这个对象
13
14 // 下面我们再看下 上面的通过Function扩展类型添加方法的demo如下:
15 Function.prototype.method = function(name,func) {
16 if(!this.prototype[name]) {
17 this.prototype[name] = func;
18 return this;
19 }
20 }
21
22 String.method('trim',function(){
23 return this.replace(/^\s+|\s+$/g,'');
24 });
25 String.method('log2',function(){
26 console.log("链式调用");
27 return this;
28 });
29 String.method('r',function(){
30 return this.replace(/a/,'');
31 });
32 var str = " abc ";
33 console.log(str.trim().log2().r()); // 输出链式调用和 bc
学习资源:理解js中的链式调用