JavaScript定义对象原型的两种实现方式对比

作者:纸飞机时间:2026-10-21 18:09:56浏览:134

本文介绍JavaScript中定义对象原型的两种常用方式:直接为prototype属性赋值方法与使用对象字面量重写prototype。通过Person类示例对比两者在内存共享与方法拓展上的差异,解析为何对象字面量方式更便于扩展多个方法且使用更顺手。

JavaScript定义对象原型的两种实现方式对比

第一种方式是通过直接为Person.prototype属性赋值具体方法来定义原型。


function Person()
{
this.username = new Array();
this.password = "123";
}
Person.prototype.getInfo = function()
{
alert(this.username + ", " + this.password);
}
var p = new Person();
var p2 = new Person();
p.username.push("zhangsan");
p2.username.push("lisi");
p.getInfo();
p2.getInfo();

第二种方式则是使用对象字面量直接重写Person.prototype属性。


function Person()
{
 this.username = new Array();
 this.password = "123";
}
Person.prototype={
 getInfo:function(){
 alert(this.username + ", " + this.password);
 }
}
var p = new Person();
var p2 = new Person();
p.username.push("zhangsan");
p2.username.push("lisi");
p.getInfo();
p2.getInfo();

个人比较喜欢第二种方式,因为这种方式允许在原型中拓展各种方法,用起来比较顺手。

例如可以写:


Person.prototype={
a方法:function(){
 do somethings...
 },
b方法:function(){
 do somethings...
 }
}

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持本站!

作者最新文章