Javascript 定义一个可以满足以下代码的类计算器。var cal=新计算器();加上(3,5);//8加上([3,5]);//8.

Javascript 定义一个可以满足以下代码的类计算器。var cal=新计算器();加上(3,5);//8加上([3,5]);//8.,javascript,Javascript,定义一个可以满足以下代码的类计算器 var cal = new Calculator(); cal.add(3, 5);// 8 cal.add([3, 5]);// 8 我的代码呢 function Calculator(){ this.p1=p1; this.p2=p2; this.add =function(){ return this.p1+this.p2; } } var cal = new Calculator(); console.log

定义一个可以满足以下代码的类计算器

var cal = new Calculator(); cal.add(3, 5);// 8 cal.add([3, 5]);// 8
我的代码呢

function Calculator(){
   this.p1=p1;
   this.p2=p2;
   this.add =function(){
    return this.p1+this.p2;   
    }
}

var cal = new Calculator();
console.log(cal.add(3, 5));
它无法工作

发现差异:

console.log(cal.add(3, 5));
                    ^--^---- two arguments

function Calculator(){
                    ^---zero arguments expected

this.add =function(){
                   ^--- zero arguments, again...
这意味着
p1
p2
未定义。如果您做过任何类型的基本调试,比如检查浏览器的调试控制台,您都会被告知这一点

如果你有

function Calculator(p1, p2) {

或者类似的…

您可以为方法E
添加一些参数

函数计算器(){
this.add=函数(p1、p2){
返回p1+p2;
}
}
var cal=新计算器();

控制台日志(校准添加(3,5))在“添加”方法中为p1、p2和可选数组添加参数。您可以使用“arguments”对象检查传入的是两个数字还是一个数组。我肯定有更好的方法,但不确定。 在计算器函数中,执行以下操作:

function Calculator() { 
    this.p1;
    this.p2;
    this.add = function(p1, p2, arr) { 
        var args = arguments;
        if(args.length == 2){
       this.p1 = p1; 
          this.p2 = p2; 
        }else{
           this.p1 = args[0][0];
           this.p2 = args[0][1];
        }
        console.log(this.p1 + this.p2);
        return this.p1 + this.p2;
    } 
}; 

var cal = new Calculator;
cal.add(5, 4);  \\logs 9
cal.add([5, 4]);. \\logs 9

未定义参考错误p1。您应该在控制台中看到此消息。什么是p1和p2?还有,你的问题是什么?最好使用
计算器.prototype.add
这至少让你将数字或数字数组传递给函数,p1,p2用当前值更新。