JavaScript学习,编写代码

时间:2016-10-27 14:05:18

标签: javascript

根据1,当我们调用increment方法时。 a随函数的给定参数增加,如果没有传递参数,那么它是1。

但根据2,当我写下面的代码时,a不是inc,总是只有1。为什么?? ....请解决这个问题....

// 1
var Obj1 = {
    a: 0,
    increment: function(inc) {
        this.a += typeof inc === 'number' ? inc : 1;
    }
};

// 2
var Obj1 = {
    a: 0,
    increment: function(inc) {
        this.value = this.a + typeof inc === 'number' ? inc : 1;
    }
};

2 个答案:

答案 0 :(得分:1)

  

当我编写如下代码时,a不是inc,只是1。为什么?

因为您从未向a

分配任何新值

成功

var Obj1 = {
   a: 0,
   increment: function (inc) {
      this.a = this.value = this.a + typeof inc === 'number' ? inc : 1;
   }
};

var Obj1 = {
   a: 0,
   increment: function (inc) {
      this.value = this.a + typeof inc === 'number' ? inc : 1;
      this.a = this.value;
   }
};

答案 1 :(得分:0)

我不知道为什么你需要价值但是

    var Obj1 = {
     a: 0,
     increment: function (inc) {
       this.a = this.a + typeof inc === 'number' ? inc : 1;
     }
    };