Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建可重用的链函数javascript_Javascript_Method Chaining_Chain - Fatal编程技术网

创建可重用的链函数javascript

创建可重用的链函数javascript,javascript,method-chaining,chain,Javascript,Method Chaining,Chain,我试图创建可重用的链接功能,但我被卡住了。常见的方法c.plus(5).plus(2).execute()工作得很好,但我不知道如何像下面这样使其可重用。你知道怎么做吗 功能链(){ 这个。i=0; 这个。加号=(x)=>{ 这个.i=这个.i+x; 归还这个; }; this.execute=()=>console.log(this.i); } 常数c=新链(); 常数c1=c加(5); c1.plus(2.execute();//7. c1.execute();//7而不是5当前函数的问题

我试图创建可重用的链接功能,但我被卡住了。常见的方法
c.plus(5).plus(2).execute()
工作得很好,但我不知道如何像下面这样使其可重用。你知道怎么做吗

功能链(){
这个。i=0;
这个。加号=(x)=>{
这个.i=这个.i+x;
归还这个;
};
this.execute=()=>console.log(this.i);
}
常数c=新链();
常数c1=c加(5);
c1.plus(2.execute();//7.

c1.execute();//7而不是5
当前函数的问题是,当调用
plus()
时,您正在修改原始对象
c
中的
i

相反,每次调用
plus(arg)
时,返回一个新的
对象,将
arg
添加到
i
的当前值

顺便说一句,javascript中习惯使用
TitleCase
来命名构造函数。通常
chain
将是
chain
。仅供参考

功能链(){
这个。i=0;
这个。加号=(x)=>{
设c=新链();
c、 i=这个。i+x;
返回c;
};
this.execute=()=>console.log(this.i);
}
常数c=新链();
常数c1=c加(5);
c1.plus(2.execute();//7.
c1.execute();//7而不是5

c、 plus(2).plus(10).execute();//12
当前函数的问题是,当调用
plus()
时,您正在修改原始对象
c
中的
i

相反,每次调用
plus(arg)
时,返回一个新的
对象,将
arg
添加到
i
的当前值

顺便说一句,javascript中习惯使用
TitleCase
来命名构造函数。通常
chain
将是
chain
。仅供参考

功能链(){
这个。i=0;
这个。加号=(x)=>{
设c=新链();
c、 i=这个。i+x;
返回c;
};
this.execute=()=>console.log(this.i);
}
常数c=新链();
常数c1=c加(5);
c1.plus(2.execute();//7.
c1.execute();//7而不是5

c、 plus(2).plus(10).execute();//12
这是同一个实例,你期望结果是什么?这是同一个实例,你期望结果是什么?没问题。很乐意帮忙!没问题。很乐意帮忙!