Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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_Oop - Fatal编程技术网

未定义的变量和连接。JavaScript

未定义的变量和连接。JavaScript,javascript,oop,Javascript,Oop,我正在尝试使用JavaScript构建一个没有eval的计算器。我试图连接一个变量来存储数字。这是正确的做法吗?此外,每次我添加到变量时,它前面都有未定义的 var calculator = { run: function(clicked){ num1: ""; num2: ""; numCheck: false; switch(clicked){ case "1":

我正在尝试使用JavaScript构建一个没有eval的计算器。我试图连接一个变量来存储数字。这是正确的做法吗?此外,每次我添加到变量时,它前面都有未定义的

var calculator = {
    run: function(clicked){
        num1: "";
        num2: "";
        numCheck: false;

        switch(clicked){
            case "1":
                document.getElementById("dis").innerHTML += clicked;
                if(this.numCheck===false){
                    if(this.num1==="undefined"){
                        this.num1 = " ";
                        this.num1 = this.num1+"1";
                    }else{
                        this.num1 = this.num1+"1";
                    }
                }else{
                    calculator.run.num2 += "1";
                };
我这样做正确吗?

一些评论:

在声明中缺少此项,并且在声明中使用了错误的格式:而不是=在运行类/函数中,正确的格式应该是:

var calculator = {
    run: function(clicked){
        this.num1= "";
        this.num2= "";
        this.numCheck= false;
案例缺少中断和{like:

在函数内部,当使用属于类的属性时,应使用此属性而不是在以下对象上使用var计算器来访问这些属性:

正确的应该是

this.run.num2 += "1";
可以将其转换为一个类似于:

this.num1 = " ";
this.num1 = this.num1+"1";
比如:


这与我问的问题有什么关系?使用JavaScript构建一个计算器而不使用eval。您可以使用对象的键作为数学运算符。如果您认为它与您的问题/问题无关,请忽略它;我不是故意粗鲁,我认为我的问题不清楚。我想知道为什么我对变量执行+=1时,结果是未定义的1d/1。这看起来像字符串操作,而不是算术。我的问题是,在执行此操作时,变量将变为未定义的1,而不是1。感谢您对其余代码的帮助。为什么我需要将其定义为变量或对象中的变量?这不是给定的吗?“执行此操作时…”。这是什么意思?抱歉,何时对变量执行+=1时,它将变为未定义的1。@hudsond7 num1:;不是声明变量的有效方法,因此this.num1+=1实际上是未定义的。这包含在我上面的文章中。
this.run.num2 += "1";
this.num1 = " ";
this.num1 = this.num1+"1";
this.num1 = " 1";