2017-08-12 78 views

回答

0

您可以使用特殊的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;

+0

所以作爲一個對象不一定使它成爲一個instanceof(Object)? –

+0

@NoOne井沒有。 'instanceof'檢查原型鏈。 'Object.create(null)'用'null'創建一個對象作爲原型,所以'instanceof'將返回'false'。但是請注意,它沒有任何Object的方法(比如'toString()'),所以你可能不想用真正的代碼來完成它。 – Kaiido

相關問題