0
是(Object)构造函数的所有javascript对象实例吗?是(Object)构造函数的所有对象实例吗?
是否有可能创建对象并且同时没有(Object)的实例或者这个构造函数是否是所有对象都是实例的通用构造函数?
是(Object)构造函数的所有javascript对象实例吗?是(Object)构造函数的所有对象实例吗?
是否有可能创建对象并且同时没有(Object)的实例或者这个构造函数是否是所有对象都是实例的通用构造函数?
您可以使用特殊的null
值创建没有原型的对象。
null
的类型是'object'
但它没有原型或者因此在一定程度上它可能已经有资格作为这样的对象不instanceof Object
。
但是我们不得不承认这是一个糟糕的候选人,因为除了它的类型之外,它不是一个真正的对象(例如我们不能添加任何属性)。
但是,作为第一句话就说,我们可以用它来创建一个对象,它是不是instanceof Object
感谢Object.create()
方法:
var o = Object.create(null); // use null has prototype
console.log(o);
console.log('instanceof Object:', o instanceof Object); // false;
o.isAnObject = true;
console.log('can have own properties:', o.isAnObject); // true;
所以作为一个对象不一定使它成为一个instanceof(Object)? –
@NoOne井没有。 'instanceof'检查原型链。 'Object.create(null)'用'null'创建一个对象作为原型,所以'instanceof'将返回'false'。但是请注意,它没有任何Object的方法(比如'toString()'),所以你可能不想用真正的代码来完成它。 – Kaiido