6
votes

Comment écrire une classe de modèle JavaScript?

Je suis juste un plus récent pour JavaScript. Je veux écrire une classe de modèle JS comme C ++. Par exemple: xxx

Nous pouvons utiliser cette classe comme ceci: xxx

pour C ++, c'est simple. Mais dans JS, comment il peut être expliqué? Merci beaucoup.


2 commentaires

Pourquoi voulez-vous une classe de modèle dans une langue dactylographiée dactylographiée?


Je vais simplement traduire le code C ++ au code JS, puis venez à ce problème. Y a-t-il un moyen pour cette traduction?


3 Réponses :


3
votes

Vous pouvez le faire:

var A = function ( x ) {
    var a = x;
    this.print = function () {
        console.log(a);
    };
};

var test = new A(2);
test.print(); // -> 2


1 commentaires

Peut-être que cela fonctionne, mais en utilisant cette méthode ne peut pas refléter le «modèle». Sans autre méthode, peut-être que c'est une bonne méthode. Merci..



6
votes

JavaScript n'a pas besoin de modèles pour gérer les types génériques car JavaScript est un Langue dactylographiée dynamique . Cela signifie que, dans JavaScript, les fonctions peuvent accepter des arguments de n'importe quel type.

Pour obtenir la même fonctionnalité que l'exemple de modèle de votre question, vous pouvez utiliser ce code JavaScript (beaucoup plus court) à l'aide de la littérales d'objet: P>

var test = A(2);
test.print();


1 commentaires

J'ai compris. Merci et mvchr :)



1
votes

Bien dans votre cas, car le paramètre de modèle est un type, vous n'avez pas besoin de le refléter dans JavaScript.

Mais si vous aviez quelque chose comme un pointeur de fonction P>

var my_class = my_class_t(function(a, b){return a < b;});
var my_instance = new my_class();
my_instance.my_method();


0 commentaires