Baseline Widely available
Symbol.hasInstance
ã¯éçãã¼ã¿ããããã£ã§ãã¦ã§ã«ãã¦ã³ã·ã³ãã«ã§ãã Symbol.hasInstance
ã表ãã¾ããinstanceof
æ¼ç®åã¯å³è¾ºãªãã©ã³ãã«å¯¾ãã¦ãã³ã³ã¹ãã©ã¯ã¿ã¼ãªãã¸ã§ã¯ãããªãã¸ã§ã¯ãããã®ã¤ã³ã¹ã¿ã³ã¹ã¨ãã¦èªèãããã©ããã夿ããéã«ä½¿ç¨ãããã¡ã½ãããããã®ã·ã³ãã«ã§æ¢ãã¾ãã
class Array1 {
static [Symbol.hasInstance](instance) {
return Array.isArray(instance);
}
}
console.log([] instanceof Array1);
// Expected output: true
å¤
ã¦ã§ã«ãã¦ã³ã·ã³ãã« Symbol.hasInstance
ã§ãã
instanceof
æ¼ç®åã¯ãobject instanceof constructor
ã®è¿å¤ãè¨ç®ããããã«ä»¥ä¸ã®ã¢ã«ã´ãªãºã ã使ç¨ãã¾ãã
constructor
ã« [Symbol.hasInstance]()
ã¡ã½ããããã£ãå ´åãobject
ãæåã®ãªãã¸ã§ã¯ãã¨ãã¦å¼ã³åºããçµæãè«çå¤ã«å¤æãã¦è¿ãã¾ããconstructor
ããªãã¸ã§ã¯ãã§ãªãå ´åãã¾ã㯠constructor[Symbol.hasInstance]
ã null
ãundefined
ã颿°ã®ãããã§ãã§ãªãå ´åãTypeError
ãçºçãã¾ããconstructor
ã« [Symbol.hasInstance]()
ã¡ã½ããããªãå ´åï¼constructor[Symbol.hasInstance]
ã null
ã¾ã㯠undefined
ï¼ã Function.prototype[Symbol.hasInstance]()
ã¨åãã¢ã«ã´ãªãºã ã使ç¨ãã¦çµæã決å®ãã¾ããconstructor
ã颿°ã§ãªãå ´åãTypeError
ãçºçãã¾ããBecause all functions inherit from Function.prototype
by default, most of the time, the Function.prototype[Symbol.hasInstance]()
method specifies the behavior of instanceof
when the right-hand side is a function.
ãã¨ãã°ã次ã®ããã«ã㦠instanceof
ã®ç¬èªã®åä½ãå®è£
ãããã¨ãã§ãã¾ãã
class MyArray {
static [Symbol.hasInstance](instance) {
return Array.isArray(instance);
}
}
console.log([] instanceof MyArray); // true
function MyArray() {}
Object.defineProperty(MyArray, Symbol.hasInstance, {
value(instance) {
return Array.isArray(instance);
},
});
console.log([] instanceof MyArray); // true
ãªãã¸ã§ã¯ãã®ã¤ã³ã¹ã¿ã³ã¹ã確èªãã
instanceof
ãã¼ã¯ã¼ãã使ã£ã¦ãªãã¸ã§ã¯ããã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹ã§ãããã©ããã確èªããã®ã¨åãæ¹æ³ã§ãSymbol.hasInstance
ã使ã£ã¦ç¢ºèªãããã¨ãã§ãã¾ãã
class Animal {
constructor() {}
}
const cat = new Animal();
console.log(Animal[Symbol.hasInstance](cat)); // true
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4