Sie müssten es als obj.options
verweisen.
Abgesehen davon sollten Sie ein Objekt {}
anstelle eines Arrays []
verwenden, wenn Sie keine numerischen Indizes verwenden.
var obj =
{
options: {},
init: function()
{
obj.options['one'] = 'one';
for(k in obj.options)
{
alert(obj.options[k]);
}
}
};
Wenn rufen Sie die init()
Funktion aus der obj
Referenz, dann könnte man this
innerhalb der init
Funktion anstelle von obj
verwenden.
var obj =
{
options: {},
init: function()
{
this.options['one'] = 'one';
for(k in this.options)
{
alert(this.options[k]);
}
}
};
obj.init(); // Makes `this` refer to `obj` in the `init` function
Wie @CMS erwähnt, sollten Sie Ihre Variablen mit var
erklären. In Ihrer for
Schleife ist k
mit var
nicht deklariert und wird als solche eine globale Variable.
Seien Sie vorsichtig, wenn Sie eine 'for x in obj'-Schleife verwenden, wenn Sie diesen Code ausführen, werden Sie eine ganze Reihe interessanter Funktionen sehen, die alarmiert werden. – david