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

Javascript:原型中的初始存储方法

Javascript:原型中的初始存储方法,javascript,Javascript,除了所有实例的上下文和全局可用性之外,原型方法还有什么好处吗 在没有原型方法的情况下创建对象的新实例会消耗比反之更多的内存吗 只是不明白,为什么有些开发人员在不需要共享上下文的情况下将初始方法存储在原型中 我唯一考虑的是内存使用 // first one function t(){ this.method1=function(){ }; this.method2=function(){ }; } // second one function tt(){ }

除了所有实例的上下文和全局可用性之外,原型方法还有什么好处吗

在没有原型方法的情况下创建对象的新实例会消耗比反之更多的内存吗

只是不明白,为什么有些开发人员在不需要共享上下文的情况下将初始方法存储在原型中

我唯一考虑的是内存使用

// first one
function t(){
    this.method1=function(){

    };
    this.method2=function(){

    };
}

// second one
function tt(){

}
tt.prototype={
    method1:function(){

    }
    ,method2:function(){

    }
}

var storage1=[];
var storage2=[];

var i=0;
while(i<10000) {
    storage1.push(new t());
    storage2.push(new tt());    
    i++;    
}
//第一个
函数t(){
this.method1=函数(){
};
this.method2=函数(){
};
}
//第二个
函数tt(){
}
tt原型={
方法1:函数(){
}
,方法2:函数(){
}
}
var-storage1=[];
var-storage2=[];
var i=0;

虽然(i是的,它消耗了大量的内存,而消耗内存的程度取决于“类”的复杂程度和创建的实例数量。这是使用原型方法的一个很好的理由,大大超过了“私有方法”的好处


我不知道你所说的“不需要共享上下文时”是什么意思。第一种方法是一些开发人员用来实现私有属性的反模式。在代码中引入这种逻辑通常不是一个好主意,而不仅仅是在内存方面