oop - Javascript: Internal array is not reset to outer objects -
how grant access inner properties of objects in right way? break application:
i have object handles array (simplified here):
function listmanager() { var list = [], add = function (element) { list.push(element); }, clear = function () { list = []; }; return { add: add, clear: clear, list : list }; };
but when using it:
var manager = new listmanager(); manager.add("something"); manager.clear(); console.log(manager.list.length); // <= outputs "1"!
stepping through code shows, within clear method, list
becomes new array. outside listmanager
list ist not cleared.
what doing wrong?
this because clear
sets value of var list
, not .list
on object returned listmanager()
. can use this
instead:
function listmanager() { var list = [], add = function (element) { this.list.push(element); }, clear = function () { this.list = []; }; return { add: add, clear: clear, list : list }; }
Comments
Post a Comment