为什么这个计数器方法不能正常工作?

时间:2016-11-16 11:15:14

标签: javascript

我有一个count方法,它将一堆1打印到控制台,而不是向num属性添加1,例如,如果我将1加入到参数中,我将获得100个而不是1到100。

    let obj={
        num:0,
        count: function(max){
            for(let i=0; i<max; i++){
                let num=this.num;
                num++
                console.log(num);
            }
        }
    }

    obj.count(100);

1 个答案:

答案 0 :(得分:2)

它无法正常工作,因为您正在更改局部变量num的值而不是实例变量this.num,因此for循环{{1}的每次迭代都是如此}等于this.num。由于数字是值类型,因此不会通过引用传递。可以实现一个简单的修复:

0