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版本