70 votes

Extension de l’objet JavaScript-

Je suis en train de transformer à partir de Java, Javascript, et c'est un peu dur pour moi de comprendre comment étendre les objets de la façon dont je veux faire.

J'ai vu plusieurs personnes sur l'internet, qui a une méthode sur un objet appelé à s'étendre. Le code ressemblera à ceci:

var Person = {
   name : 'Blank',
   age  : 22
}

var Robot = Person.extend({
   name : 'Robo',
   age  : 4
)}

var robot = new Robot();
alert(robot.name); //Should return 'Robo'

Personne ne sait comment faire ce travail? J'ai entendu dire que vous devez écrire

Object.prototype.extend = function(...);

Mais je ne sais pas comment faire pour que le système fonctionne. Si il n'est pas possible, veuillez me montrer une autre alternative qui s'étend d'un objet.

151voto

osahyoun Points 2591
<p>Vous voulez « hériter » objet prototype de la personne :<pre><code></code></pre></p>

38voto

tomilay Points 261
<p>Si vous n’avez pas encore trouvé un moyen, utilisez la propriété associative des objets JavaScript pour ajouter une fonction d’extension pour les <code></code> comme indiqué ci-dessous.<pre><code></code></pre><p>Vous pouvez ensuite utiliser cette fonction, comme indiqué ci-dessous.</p><pre><code></code></pre></p>

15voto

Harold Points 419
<p>Et une autre année plus tard, je peux vous dire il y a une autre réponse sympa.<p>Si vous n’aimez pas la façon dont fonctionne de prototypage afin d’étendre sur objets/classes, prendre alook à ceci : <a href="https://github.com/haroldiedema/joii">https://github.com/haroldiedema/joii</a></p><p>Code exemple rapide des possibilités (et bien d’autres) :</p><pre><code></code></pre></p>

6voto

250R Points 5600
<p>Vous pouvez envisager d’utiliser la bibliothèque d’assistance comme underscore.js <a href="http://documentcloud.github.com/underscore/#extend" rel="nofollow">http://documentcloud.github.com/underscore/#extend</a></p> <p>Et c’est aussi une bonne façon d’apprendre en regardant son code source. La page de codes source annoté est tout à fait utile <a href="http://documentcloud.github.com/underscore/docs/underscore.html" rel="nofollow">http://documentcloud.github.com/underscore/docs/underscore.html</a></p>

6voto

Lior Points 1151
<pre><code></code><p><pre><code></code></pre><p>Documentation du <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create" rel="nofollow">MDN</a> .</p></pre>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by: