【发布时间】:2013-05-11 22:06:15
【问题描述】:
简单地说,我可以检查一个对象是否有用户定义的原型吗?
示例;
var A = function() {};
var B = function() {};
B.prototype = {
};
// Pseudocode
A.hasUserPrototype(); // False
B.hasUserPrototype(); // True
这可能吗?
【问题讨论】:
-
什么叫用户定义?不是您创建的原型?
-
您只是将原型设置为这些对象的属性,您提供的示例不会发生原型继承。
-
@zzzzBov 我知道这一点。但是在我的示例中,我仍然通过为其分配一个空对象来修改原型,有没有办法检查这个?
-
@GriffLab,您没有修改“原型”,您只是修改了对象上恰好被称为“原型”的属性。
-
@GriffLab:“原型”在 JavaScript 中是一个非常具体的术语。在您的示例中,您没有更改对象的原型,您只是创建了一个名称为
prototype的完全任意属性。只有 functions 的prototype属性以特殊方式处理。如果你只是想测试一个属性是否存在,你应该用不同的方式来表达这个问题(我确定它是重复的)。
标签: javascript object prototype