Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.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_Ecmascript 6 - Fatal编程技术网

Javascript 计算器函数不工作,正在显示未定义的函数

Javascript 计算器函数不工作,正在显示未定义的函数,javascript,ecmascript-6,Javascript,Ecmascript 6,以下功能不工作,显示“添加未定义”。我通过链接函数调用进行计算 var calc = { x: 5, add: function(num) { x = x + num; return x; }, sub: function(num) { x = x - num; return x; }, set: function(num) { x = num; return x; }, print: function() {

以下功能不工作,显示“添加未定义”。我通过链接函数调用进行计算

var calc = {
  x: 5,
  add: function(num) {
    x = x + num;
    return x;
  },
  sub: function(num) {
    x = x - num;
    return x;
  },
  set: function(num) {
    x = num;
    return x;
  },
  print: function() {
    console.log(x);
  }
}
calc.set(5).add(3).sub(2).add(10).print();

要允许链接,您需要返回对
calc
的引用,而不是数字,还可以使用
this
引用
x
值:

var计算={
x:5,
添加:函数(num){
this.x=this.x+num;
归还这个;
},
子:函数(num){
this.x=this.x-num;
归还这个;
},
设置:函数(num){
x=num;
归还这个;
},
打印:函数(){
console.log(this.x);
}
}

计算集(5).add(3).sub(2).add(10).print()您需要返回对
calc
的引用,而不是数字以允许链接,还可以使用
引用
x
值:

var计算={
x:5,
添加:函数(num){
this.x=this.x+num;
归还这个;
},
子:函数(num){
this.x=this.x-num;
归还这个;
},
设置:函数(num){
x=num;
归还这个;
},
打印:函数(){
console.log(this.x);
}
}

计算集(5).add(3).sub(2).add(10).print()我宁愿这样做:

var Calc=函数(x){
这个.x=x;
};
计算原型={
加:功能(y){
这个.x+=y;
归还这个;
},
附属:职能(y){
这个.x-=y;
归还这个;
},
valueOf:函数(){
归还这个.x;
},
toString:函数(){
返回(+this)+“”;
},
打印:函数(){
console.log(this.toString());
归还这个;
}
};
函数计算(x){
返回新的计算值(x);
}
计算(1)。加上(
计算(5).添加(3).子(2).添加(10).打印()

).print()我宁愿这样做:

var Calc=函数(x){
这个.x=x;
};
计算原型={
加:功能(y){
这个.x+=y;
归还这个;
},
附属:职能(y){
这个.x-=y;
归还这个;
},
valueOf:函数(){
归还这个.x;
},
toString:函数(){
返回(+this)+“”;
},
打印:函数(){
console.log(this.toString());
归还这个;
}
};
函数计算(x){
返回新的计算值(x);
}
计算(1)。加上(
计算(5).添加(3).子(2).添加(10).打印()

).print()
要以这种方式链接,必须返回对象,而不是
x
calc.set(5)返回数字。数字没有方法。对于方法链接,您必须返回此值。在这两种情况下,我都没有得到@JasperTo chain的结果。通过这种方式,您必须返回对象,而不是
x
calc。set(5)返回一个数字。数字没有方法。对于方法链接,您必须返回此值。在这两种情况下,我都没有得到结果@JasperThanks Buddy!成功了!无论如何都可以在ES6中做到这一点当然,会添加ES6版本的银行好友!成功了!无论如何都可以在ES6中做到这一点,当然,会添加ES6版本