Le instanceofmot 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 => falseest 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 instanceofune 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 Objectest TRUEdans le nœud et les navigateurs modernes
({}) instanceof Objectreviendra true. En fait, le code que vous avez écrit vous donnera une erreur.