dire que j'ai le code suivant:
var anotherAlbum = new Album();
5 Réponses :
JavaScript "classes", tout comme n'importe quel autre objet, peut être créé de manière dynamique. Donc, oui, cela peut être fait.
Vous feriez quelque chose comme celui-ci dans le code qui gère la réponse Ajax (en supposant que la réponse AJAX fournissait le nom de la nouvelle "classe", et c'est dans une variable appelée NewClassName) : p>
Ma principale question serait, comment créerez-vous l'objet "album" afin de pouvoir être appelé à tout moment de l'application
Ceci est en fait le seul à l'héritage que JavaScript a. JavaScript a Héritage prototypal (qui peut être utilisé pour recréer le héritage classique). Cela signifie que l'héritage provient d'un autre objet, pas une définition de classe.
Pour créer un objet, toutes les propriétés d'un autre objet sont simples: P>
function Album() { // do whatever initialization you need to here, all the properties of album // are available on 'this' // e.g., doSomething(this.albumName); } Album.prototype = album; var anotherAlbum = new Album();
JavaScript est prototypal, pas classique, donc si vous pensez en termes de cours, vous le faites mal.
Vous n'avez pas à utiliser le alors vous pouvez créer une nouvelle instance de cet objet: p> et ensuite Sachez qu'il s'agit d'une version simple et que cela laisse tous les attributs " Publique'. Si vous avez besoin d'une confidentialité, il peut être réalisé en ajoutant des fonctions au mélange. C'est un peu plus compliqué cependant, alors laissez-moi savoir si vous êtes intéressé ... p> p> nouvel opérateur code> du tout. Vous pouvez créer un nouvel objet à l'aide de l'objet littéral: p>
mysecondObject code>, et s'il dispose de méthodes, vous pouvez les surcharger tout aussi facilement: p>
mysecondObject code> aura bien sûr toutes les propriétés que vous avez données
MyObject code> à la création. p>
Vous pouvez utiliser le modèle de héritage fonctionnel de Douglas Crockford. Code de JavaScript Good Pièces Book
var mammal = function (spec) { var that = {}; that.get_name = function ( ) { return spec.name; }; that.says = function ( ) { return spec.saying || ''; }; return that; }; var myMammal = mammal({name: 'Herb'}); var cat = function (spec) { spec.saying = spec.saying || 'meow'; var that = mammal(spec); that.purr = function (n) { var i, s = ''; for (i = 0; i < n; i += 1) { if (s) { s += '-'; } s += 'r'; } return s; }; that.get_name = function ( ) { return that.says( ) + ' ' + spec.name + ' ' + that.says( ); return that; }; var myCat = cat({name: 'Henrietta'});
Vous pouvez faire ce
Je ne vois pas comment cela répond à la question de 5 ans.