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