0

Google 开发人员优化 JavaScript 代码的建议中,他们提到为对象声明/初始化新变量的最佳方法是使用原型。例如,而不是:

foo.Bar = function() {
    this.prop1_ = 4;
    this.prop2_ = true;
    this.prop3_ = [];
    this.prop4_ = 'blah';
};

采用:

foo.Bar = function() {
    this.prop3_ = [];
};

foo.Bar.prototype.prop1_ = 4;
foo.Bar.prototype.prop2_ = true;
foo.Bar.prototype.prop4_ = 'blah';

但是,就我而言,我在变量之间存在依赖关系,例如:

var appv2 = function(){
    this.start(this.person, this.car); 
}; 

appv2.prototype.toWhom = 'Mohamed'; 
appv2.prototype.person = new person(this.toWhom); 
appv2.prototype.car = new car();

appv2.prototype.start = function(person, car){
    console.log('start for appv2 is called'); 
    person.sayHello('me app v2');
    car.brand();    
}; 

new appv2(); 

this.toWhom在主构造函数体或对象的方法函数之外使用将产生未定义的结果。为了解决这个问题,我可以使用appv2.prototype.toWhom代替,this.toWhom或者我可以在主构造函数体内声明我的因变量。

但我想知道在性能方面实现这一目标的最佳方式是什么?

谢谢

4

1 回答 1

1

toWhom在创建时引用person,您可以将值存储在单独的变量中:

var toWhom = appv2.prototype.toWhom = 'Mohamed';
appv2.prototype.person = new person(toWhom);

prototype或者,正如您所怀疑的,从 中引用它:

appv2.prototype.person = new person(appv2.prototype.toWhom);

原因this.toWhomundefined因为this没有引用那里的实例appv2

于 2013-07-30T05:51:43.610 回答