如何确定在这些条件下new Object
和new fn
之间的差异?确定新对象和新fn之间的差异
var fn = function(){};
fn.prototype = {};
- 你可以不依赖于
__proto__
或Object.getPrototypeOf
现有的,因为它们不是在IE或Opera。 - 该解决方案可能不会静态使用
fn
,如instanceof fn
。 - 实施你自己的
Object.getPrototypeOf
没问题。
不要求:如果您的解决方案可与其他帧中的对象,并且不使用功能系列化这将是很好。
下面是一些例子基本代码,开始了:
var fn = function(){};
fn.prototype = {};
var x = new fn,
y = new Object;
fn = null; // prohibit static reference to fn
// define your detection function here
function isNewObject(obj) {
};
alert(isNewObject(x) !== isNewObject(y) ? "pass" : "fail");
你的意思是你想知道FOO是SomeClass的实例,或者具有相同属性的只是一个对象? – 2009-07-25 17:20:05
我不认为这是可能的。 – 2009-07-25 17:22:20