javascript 在 构造器函数中定义方法 vs 在 prototype 中定义方法

构造器函数中, this 导至每个对象中都有此方法体存在,占内存较多.

而外部,protoytype 只存在一个方法体复本, 但是,定义在外面的方法,不能直接访问 构造器函数 内的变量 例如 

function classB() {
    var count = 100;
    this.n = 10;
    this.getCount = function{
        return count-1;//直接访问count
    }
}

classB.prototype.u = function(){  //方法u不能直接方问 classB中的 count
    this.n= this.n - 1;
    this.getCount();
}


什么时候在里面,什么时候在外面,需根据实际情况合理运用。

你可能感兴趣的:(javascript 在 构造器函数中定义方法 vs 在 prototype 中定义方法)