Articles of constructeur

Étendre un Primitif uniquement dans la portée actuelle

Est-il possible de copier une primitive comme String donc elle ne peut être étendue que dans la fonction actuelle? var foo = function() { var String = // somehow clone String (the primitive function) String.prototype.first = function() { return this.charAt(0) }; return 'abc'.first(); } foo(); // returns 'a' 'abc'.first(); // returns TypeError "abc".first is not […]

Quelle est la différence entre la nouvelle date (Date) et la nouvelle Date ()?

En javascript, la façon habituelle de créer un objet est une telle façon: new Date() . Mais vous pouvez également le faire: new (Date) . Quelle est la différence et les avantages de le faire de la dernière façon?

La notation littérale vs Constructeur pour les primitives, plus appropriée pour les débutants?

Donc, je suis un TA pour une classe dans mon université, et j'ai un peu de désaccord sur la façon de présenter des types de données pour les programmeurs novateurs absolus (dans lesquels la plupart n'ont jamais été programmés auparavant). Mon professeur leur dit aux élèves qu'ils doivent utiliser strictement les constructeurs pour créer des […]

Héritage javascript, réflexion et prototypage de la marche à pied?

J'essaie de comprendre combien je peux utiliser de la langue javascript elle-même et combien je devrais me mettre en œuvre quand il s'agit de réflexion d'objet. Voici le résultat escompté // property inheritance schema (defining default props) (stored in db "schemas" table) foo bar moo baz ugh // method inheritance schema (stored in code) foo […]

SomeFunction.Prototype.constructor vs someFunction.constructor

Je suis conscient du fait que les fonctions en JavaScript mènent une vie double d'une fonction (en tant que chose de première classe pour créer des instances) et la seconde d'un objet normal. Mais je suis surpris de voir la sortie de la console suivante. function A() { console.info("A"); } console.info(A.prototype.constructor === A.constructor); // false […]

Pourquoi devez-vous réinitialiser le constructeur javascript pendant l'héritage?

Pourquoi est-il important de réinitialiser le constructeur de Mammifère à Cat? J'ai joué avec ce code et je n'ai trouvé aucun effet négatif d'avoir le «faux» constructeur. function Mammal(name){ this.name=name; this.offspring=[]; } Cat.prototype = new Mammal(); // Here's where the inheritance occurs Cat.prototype.constructor=Cat; // Otherwise instances of Cat would have a constructor of Mammal function […]

Chainable, Interfaces de classe basées sur les promesses en JavaScript

J'écris un constructeur en JavaScript qui possède les propriétés suivantes: function WhizBang() { var promise; this.publicMethod_One = function publicMethod_One() { … }; this.publicMethod_Two = function publicMethod_Two() { … }; promise = asyncInit(); } Donc, appeler le new WhizBang() commencera le processus asyncInit() . Ce qui n'est pas évident à partir du code ci-dessus, c'est qu'aucune […]

Promérez la classe importée (constructeur) avec bluebird dans ES6 + babel

Supposons que j'ai créé ou que j'ai une bibliothèque de node.js lib.js export class C { constructor(value, callback) { callback(false, `Hello ${value}`); } task(value, callback) { callback(false, "returned " + value); } } La partie importante est que le constructeur des classes doit accepter un rappel puisqu'il contient des connexions de base de données et […]

Difficulté à marcher manuellement sur la chaîne de prototype

Je voulais essayer de marcher manuellement la chaîne prototype de quelques objets juste pour voir ce que je trouve en cours de route. Cependant, je me suis coincé sur le premier que j'ai essayé. Voici le code: function MyObject() { } var x = new MyObject(); console.log('——————————————–'); console.log('x.constructor.name: ' + x.constructor.name); console.log('x.constructor.prototype.constructor.name: ' + x.constructor.prototype.constructor.name); […]

Propriété ou fonction prototype primordiale

function Ninja(){ this.swingSword = function(){ return true; }; } // Should return false, but will be overridden Ninja.prototype.swingSword = function(){ return false; }; var ninja = new Ninja(); log( ninja.swingSword(), "Calling the instance method, not the prototype method." ); Maintenant, le journal me montre vrai. Ce qui signifie swingSword qui a été défini dans Ninja.prototype […]