function Class()
{
this.Name = "Class";
}
Class.prototype.getName = function(){ return this.Name; };也有人是直接将一个自定义对象赋值给prototype:
function Class()
{
this.Name = "Class";
}
Class.prototype = {
getName : function(){ return this.Name; }
};暂时没发现有什么使用上的问题,但还是发现了一点不同:我们知道,原型对象默认有一个属性constructor,他指向构造函数本身,测试一下:
function Class()
{
this.Name = "Class";
}
Class.prototype.getName = function(){ return this.Name; };
alert(Class.prototype.constructor);结果显示:
function Class()
{
this.Name = "Class";
}
function Class()
{
this.Name = "Class";
}
Class.prototype = {
getName : function(){ return this.Name; }
};
alert(Class.prototype.constructor);结果显示:
function Object() {
[native code]
}
这和Object.prototype.constructor的结果是一样的,也就是说:将自定义对象赋值给prototype后,改变了原型对象constructor属性的值,他不再是表示prototype所对应的构造函数,其值是超类(Object)的构造函数。
评论(0)
暂无评论。