使用原型对象添加自定义属性和方法以防止使用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)
}
}
答案 0 :(得分:0)
如果在构造函数中指定this.something
,则每个对象都拥有它自己定义的对象的副本。因此,如果您以这种方式分配您的成员函数,您将获得许多重复的函数对象。
Prototypes允许您在每个实例中共享函数实现。它还允许您执行有效的类变量 - 基于该原型在所有实例中共享状态。它还开辟了一些更高级的共享可能性,实际上没有人实际使用它。