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

Popular posts from this blog

c++ - OpenCV Error: Assertion failed <scn == 3 ::scn == 4> in unknown function, -

php - render data via PDO::FETCH_FUNC vs loop -

The canvas has been tainted by cross-origin data in chrome only -