Puis-je avoir un objet avec le même nom que la classe dans javascript?Puis-je avoir un objet avec le même nom que la classe dans javascript?
Répondre
Il n'y a pas de classes en soi en javascript, seulement des méthodes qui construisent des objets.
Pour répondre directement à votre question, oui et non. Vous pouvez créer une fonction qui construit votre objet, mais dès que vous avez une variable du même nom, la fonction est détruite.
il n'y a pas de différence entre
function bob() {
//code goes here
this.name = "bob";
}
et
var bob = function() {
//code goes here
this.name = "bob";
}
Que se passerait alors si vous déclarez une variable bob nommé comme:
var bob = new bob();
Dans ce cas, , la fonction bob serait c alled, l'objet créé, et la fonction bob cognée par la nouvelle variable bob.
Si vous voulez créer un singleton, alors vous pourriez aussi bien utiliser une fermeture comme suit:
var bob = new (function() {
//code goes here
this.name = "bob";
})();
Vous pouvez utiliser le même nom pour la classe et variable, oui. Mais commencez la classe avec une majuscule et gardez les noms de variables en minuscules. (Ainsi, une classe Bob et variable bob.)
Javascript est sensible à la casse donc il connaît la différence. Pour vous, les deux ne feraient que lire la même chose.
Qu'en est-il jQuery: $('string')
, une fonction autant que je peux dire, et $.ajax
, une classe avec une méthode nommée ajax.
Fonction nommée $
et de classe $
. Je sais que j'ai tort mais c'est à quoi ça ressemble.
- 1. C++ - Appeler une fonction dans une classe avec le même nom que la classe
- 2. Créer une propriété python avec le même nom que le nom du membre de la classe
- 3. Comment faire pour avoir le dossier et le contrôleur avec le même nom dans ASP.NET MVC?
- 4. Erreur TortoiseSvn: le même nom que le répertoire administratif
- 5. Comment copier la valeur de la classe X vers la classe Y avec le même nom de propriété dans C#?
- 6. pouvez-vous avoir un membre privé de la même classe que la classe de base dont vous héritez?
- 7. C++ wrapper avec le même nom?
- 8. Déclarer un objet avant même que cette classe ne soit créée
- 9. Rails ne peut pas trouver le modèle avec le même nom que Ruby class
- 10. Puis-je avoir TComboBoxEx à la même hauteur que TComboBox?
- 11. JYaml: objet de vidage sans inclure le nom de classe
- 12. Classe de base d'accès fn avec la même signature que l'objet de classe dérivé
- 13. facile jQuery Question - Selecing un div avec la même classe que l'une
- 14. Même avec soi-même, objet autoreleased encore
- 15. objet différent avec le même identifiant
- 16. Git-svn se confond sur une étiquette avec le même nom que précédemment supprimé un
- 17. Comment "cloner" un objet dans un objet de sous-classe?
- 18. Nom de la classe à partir de son objet
- 19. Paramètre MySql Stored Procedure avec le même nom que la colonne d'affects, est-ce possible?
- 20. Utilisation Le même nom de variable dans la portée
- 21. fichier et de répertoire avec le même nom dans le même répertoire parent - Solaris 8, UFS
- 22. jQuery - Afficher/masquer les éléments individuellement avec le même nom de classe
- 23. Choix entre plusieurs exécutables avec le même nom (linux)
- 24. Avoir com.l2fprod.common.propertysheet.PropertySheetPanel pour afficher la classe composée
- 25. Utiliser la variable Javascript dans le nom de l'objet?
- 26. Vérifier le nom de la classe
- 27. Comment laisser la sous-classe spécifier des détails tels que le nom et la description
- 28. Problème avec la solution et le projet avec le même nom
- 29. Comment définir une fonction avec le même nom qui est présent dans un fichier différent
- 30. Comment obtenir le nom de la classe
donc var bob = new bob(); est erroné par programme? – Rakesh
c'est possible. la variable bob sera maintenant un objet créé par la fonction bob. c'est juste qu'après cela, la fonction bob ne sera plus accessible (pour l'invocation ou l'instanciation) –
@rakesh: juste pour ajouter, chaque fois que vous créez un nom de variable qui est exactement le même que le nom de votre fonction, vous devez vraiment demander vous-même si c'est nécessaire. Il est assez courant de nommer des classes comme SelectorPanel, et de créer des instances nommées applicationSelectorPanel ou layoutSelectorPanel (ou simplement applicationPanel et layoutPanel). La classe devrait définir le type (ou la classe) d'objet à créer. Le nom de la variable devrait juste donner une étiquette significative pour ce qu'est l'objet. –