Maison >interface Web >js tutoriel >Comment puis-je identifier de manière fiable les types d'objets JavaScript ?
Comprendre l'identification des types JavaScript
Contrairement à la méthode class.getName() de Java, JavaScript ne fournit pas d'équivalent direct. Pour obtenir des informations sur les types d'objets JavaScript, envisagez les approches suivantes :
1. Utilisation de la propriété Constructor :
var arr = [1, 2, 3]; console.log(arr.constructor == Array); // true
Cependant, cette approche peut ne pas toujours fonctionner, en particulier lorsque les objets sont créés via un héritage complexe ou des scénarios multi-images. Il est recommandé de faire preuve de prudence lorsque l'on s'appuie sur le constructeur.
2. L'utilisation de l'opérateur instanceof :
var arr2 = new Array(1, 2, 3); console.log(arr2 instanceof Array); // true
instanceof est plus précise, mais elle échoue pour les valeurs littérales telles que les nombres et les chaînes. Il rencontre également des problèmes au niveau des cadres et des fenêtres.
3. Utilisation de la propriété name de la propriété constructeur :
function MyClass() { } var inst = new MyClass(); console.log(inst.constructor.name); // "MyClass"
Cette méthode fonctionne généralement bien, mais elle nécessite que la propriété name du constructeur soit définie ou que la prise en charge soit patchée par singe pour les navigateurs plus anciens comme IE9.
4. Utilisation de Object.prototype.toString :
var str = 'Hello'; console.log(Object.prototype.toString.call(str)); // "[object String]"
toString peut fournir des informations de type pour les types intégrés, mais renvoie « Object » pour les types personnalisés.
Avertissements et Considérations :
Conclusion :
La détermination des types d'objets en JavaScript nécessite une compréhension nuancée des différentes méthodes disponibles. Bien qu'il existe des similitudes avec l'approche Java, il existe également des nuances distinctes qui nécessitent une analyse plus complète du contexte et de l'utilisation.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!