所以,我寫了一些示例代碼實現Constructor[Symbol.hasInstance]
的另一個函數,我注意到我的新實現不會被調用。重新實現的構造函數[Symbol.hasInstance]但它仍然不會被調用
下面的腳本是什麼,我希望發生:
function Pirate(name) {
this.name = name;
}
const jackSparrow = {
isPirate: true
};
// Notice how `jackSparrow` is not yet considered an instance of the `Pirate` object
console.log(jackSparrow instanceof Pirate); // false
// Now let's assign another function for `Pirate[Symbol.hasInstance]`
Pirate[Symbol.hasInstance] = function (anObj) {
return anObj.isPirate;
};
// This will cause Pirate[Symbol.hasInstance] to be called with `jackSparrow`
console.log(jackSparrow instanceof Pirate); // true
,我打算給console.log
調用添加到我的海盜[Symbol.hasInstance]實現,但它不會記錄任何的安慰。
有沒有人有任何想法發生了什麼?爲什麼我的實現不被調用?
我在節點6.9.1上運行這個。
...或使用'class'定義了'靜態[Symbol.hasInstance ](obj){...}'方法 – Bergi