59 votes

l'ajout d'un prototype d'objet littéral

STORE = {
   item : function() {
  }
};
STORE.item.prototype.add = function() { alert('test 123'); };
STORE.item.add();

Été à essayer de comprendre quel est le problème avec cela un bon moment. Pourquoi ne pas ce travail? Cependant, il fonctionne quand j'utilise le suivre:

STORE.item.prototype.add();

89voto

CMS Points 315406

Le prototype de l'objet est destiné à être utilisé sur les fonctions constructeur, essentiellement les fonctions qui peuvent être appelées à l'aide de l' opérateur new pour créer de nouvelles instances de l'objet.

Des fonctions en JavaScript sont de première classe d'objets, ce qui signifie que vous pouvez ajouter des membres à eux et de les traiter comme des objets ordinaires:

var STORE = {
   item : function() {
  }
};

STORE.item.add = function() { alert('test 123'); };
STORE.item.add();

Une utilisation typique de l'objet prototype comme je l'ai dit avant, c'est lorsque vous instanciez un objet par l'appel d'une fonction constructeur avec le nouvel opérateur, par exemple:

function SomeObject() {} // a constructor function
SomeObject.prototype.someMethod = function () {};

var obj = new SomeObject();

Toutes les instances de SomeObject hériteront les membres de l' SomeObject.prototype, étant donné que les membres seront accessibles par le biais de la chaîne de prototype.

Chaque fonction en JavaScript a un prototype d'un objet, car il n'y a aucun moyen de savoir quelles sont les fonctions qui sont destinés à être utilisés en tant que constructeurs.

3voto

Mike Samuel Points 54712

Vous pouvez utiliser JSON revivers de transformer votre JSON dans les objets de la classe au moment de l'analyse. L'EcmaScript 5 projet a adopté la JSON2 reviver schéma décrit à http://JSON.org/js.html

var myObject = JSON.parse(myJSONtext, reviver);

L'option paramètre reviver est un fonction qui sera appelée pour chaque la clé et de la valeur à chaque niveau de la résultat final. Chaque valeur sera remplacé par le résultat de la reviver fonction. Ceci peut être utilisé à la réforme des objets génériques dans les instances de pseudoclasses, ou de transformer la date les chaînes en Date des objets.

myData = JSON.parse(text, function (key, value) {
    var type;
    if (value && typeof value === 'object') {
        type = value.type;
        if (typeof type === 'string' && typeof window[type] === 'function') {
            return new (window[type])(value);
        }
    }
    return value;
});

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:

X