使用原型对象向javascript对象添加自定义属性和方法的优点

时间:2015-03-07 05:50:06

标签: javascript

使用原型对象添加自定义属性和方法以防止使用this属性有什么好处?

例如,此代码来自http://www.javascriptkit.com/javatutors/proto3.shtml

//First, create the custom object "circle"
function circle(){
}
circle.prototype.pi=3.14159

// create the object method
function alertmessage(){
alert(this.pi)
}
circle.prototype.alertpi=alertmessage

上述功能是否与

相同
//First, create the custom object "circle"
function circle(){
   this.pi=3.14159; 
   this.alertmessage(){
      alert(this.pi)
   }
}

1 个答案:

答案 0 :(得分:0)

如果在构造函数中指定this.something,则每个对象都拥有它自己定义的对象的副本。因此,如果您以这种方式分配您的成员函数,您将获得许多重复的函数对象。

Prototypes允许您在每个实例中共享函数实现。它还允许您执行有效的类变量 - 基于该原型在所有实例中共享状态。它还开辟了一些更高级的共享可能性,实际上没有人实际使用它。