Je trouve difficile d'expliquer les mots, alors voici un extrait de code que j'essaie, mais Firefox/firebug va dans le sens inverse! Je suis en train de suivre this et this comme guide. Ce que j'essaie de faire ici estUtilisation de la fonction prototype javascript pour initialiser la variable dans le contexte 'this'
- new MyObject.Method ('chaîne', optionsArray);
articles de optionsArray sont réitérés et enregistrés en utilisant la fonction prototype Set()
if(typeof(MyObj) == 'undefined') MyObj= {}; MyObj.Method = function initialise(id,options) { this.id = id; this.options = options; this.properties ={}; for (var i = 0; i < this.options.length; i++) // =>options.length=2 (correct) { var obj = this.options[i]; //get the keynames, pass with values to Set() to update properties for (var keys in obj) { console.log(keys); //=> correctly prints 'property1' and 'currentValue' this.Set(keys,obj); //=> this is i guess where it enters a loop? } } } //sets properties MyObj.Method.prototype.Set = function (name, value) { this.properties[name.toLowerCase()] = value; }
et dans ma page html bloc de script, j'ai
window.onload = function() { var options = [ { property1: { show: true, min: 0, max: 100 } }, { currentValue: { show: true, colour: 'black' } } ]; var myObj = new MyObj.Method('someDivId',options); }
s'il vous plaît conseiller si je suis trop compliquer le code. Je pense que la vérification de hasOwnProperty aiderait.
Il est presque impossible de dire ce que vous essayez de faire ici. Ce code n'a vraiment pas beaucoup de sens. La fonction "Set" est sur l'objet prototype pour quelque chose appelé "Gauge.Speedometer" et n'aura donc rien à voir avec "MyObj" ou "MyObj.Method". – Pointy
@Pointy, corrigé. – Abhijit
vous appelez 'MyObj.Method' avant que le tableau' options' ne soit initialisé ou même déclaré, était-ce intentionnel ou juste une faute de frappe? – roryf