Le instanceof
mot clé en JavaScript peut être assez déroutant lorsqu'il est rencontré pour la première fois, car les gens ont tendance à penser que JavaScript n'est pas un langage de programmation orienté objet.
- Qu'Est-ce que c'est?
- Quels problèmes cela résout-il?
- Quand est-ce approprié et quand non?
"foo" instanceof String
=> faux, 1 instanceof Number
=> faux, {} instanceof Object
=> faux. Tu peux répéter s'il te plait?!
"foo" instanceof String => false
est correct, car typeof "foo" == 'string'
. new String("foo") instanceof String => true
, car typeof String == 'function'
- vous devez traiter la fonction comme une classe (définition de classe). La variable devient instanceof
une function
(classe) lorsque vous l'assignez en tant que var v = new AnythingWhatTypeofEqualsFunction()
. La même chose s'applique à 1
. typeof 1 == 'number'
- 'nombre' n'est pas 'fonction' :) Suivant - {} instanceof Object
est TRUE
dans le nœud et les navigateurs modernes
({}) instanceof Object
reviendra true
. En fait, le code que vous avez écrit vous donnera une erreur.