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

作者:纸飞机

时间:2026-10-21

浏览:133

本文介绍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...
 }
}

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

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章