javascript - Is it possible to have an object method return a function object and if so how do you access it? -


for instance, if have:

var model = {     updatecat: function(cat){          var foo1 = function(){                  //do              };          var foo2 = function(){                  //do else              };          return{foo1: foo1, foo2: foo2};     } };  model.updatecat.foo1(cat); //does not work 

what best way trying there? better create separate object methods?

you need parentheses after model.updatecat such model.updatecat().foo1(). because updatecat function needs called in order return foo1/foo2 object.

also, looks updatecat function takes parameter cat, not foo1 .foo1(cat) incorrect.

var model = {     updatecat: function(cat){          var foo1 = function(){                  //do              };          var foo2 = function(){                  //do else              };          return{foo1: foo1, foo2: foo2};     } };  model.updatecat(cat).foo1(); //does work 

alternatively, can call updatecat function inline have updatecat reference result of function. note works if you're using 1 cat since result of calling updatecat(cat) stored , anonymous function lost.

var model = {     updatecat: (function(cat){          var foo1 = function(){                  //do              };          var foo2 = function(){                  //do else              };          return{foo1: foo1, foo2: foo2};     })(cat) };  model.updatecat.foo1(); //does work 

Comments

Popular posts from this blog

python - TypeError: start must be a integer -

c# - DevExpress RepositoryItemComboBox BackColor property ignored -

django - Creating multiple model instances in DRF3 -