欢迎光临

木子屋

标题: 将自定义对象赋值给prototype的结果

作者: dnawo

日期: 2009-07-24 09:49 AM

分类: 脚本语言

内容: 给构造函数添加一个方法我们通常这么做：
复制内容到剪贴板 程序代码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)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.818 ms

返回

标题: 将自定义对象赋值给prototype的结果

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.818 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.850 ms

返回