有什么区别
var A = function () {
this.x = function () {
//do something
};
};
Run Code Online (Sandbox Code Playgroud)
和
var A = function () { };
A.prototype.x = function () {
//do something
};
Run Code Online (Sandbox Code Playgroud) 在Javascript中,这两种向对象添加函数的方法有什么区别吗?出于任何原因,一个人更好吗?
function ObjA() {
this.AlertA = function() { alert("A"); };
}
ObjA.prototype.AlertB = function() { alert("B"); };
var A = new ObjA();
A.AlertA();
A.AlertB();
Run Code Online (Sandbox Code Playgroud) 我只是在学习Javascript,我很想知道,正在使用原型声明,如下所示:
function TSomeObj()
{
this.name="my object";
}
TSomeObj.prototype.showname = function() {
alert(this.name);
}
Run Code Online (Sandbox Code Playgroud)
基本上像这样做:
function TSomeObj()
{
this.name="my object";
this.showname = function() {
alert(this.name);
}
}
Run Code Online (Sandbox Code Playgroud)
当我转储对象的属性时,我得到相同的结果:
TSomeObj (inline version) =
{
'name': 'my object',
'test': function
}
TSomeObj (prototype declaration) =
{
'name': 'my object',
'test': function
}
Run Code Online (Sandbox Code Playgroud)
使用原型声明的好处是什么?除了更少的混乱和更有序的源代码或许.
更新:我或许应该使人们更清楚,这是最终的结果,我很好奇.最终结果是相同的(即在对象原型中都注册了一个新函数) - 但是他们这样做的方式却截然不同.感谢您的所有回复和信息!