在面向对象的Javascript中使用原型添加的公共函数和函数之间有什么区别

时间:2014-01-02 07:48:05

标签: javascript oop methods prototype

我正在努力理解写作时的不同之处:

var Foo = function (){
 this.name = 'abc';
 this.alertName1 = function(){
  alert(this.name);
 }
}

Foo.prototype.alertName2 = function(){
  alert(this.name);
 }

两种方法都可用并且正确,但何时使用问题是什么?

1 个答案:

答案 0 :(得分:2)

当你向原型添加一个函数时,无论你实例化Foo多少次,它都只存在于一个地方。

在构造函数中添加函数时,每次实例化时都会创建一个新副本,因此效率较低。