JavaScript Closure - method not recognized -
i calling function myfunc() , storing in variable myfunction passing 3 default argument used addition.
myfunction returned anonymous function parameter passed when logging message in console.
i trying access method setvalue of myfunction change original value of 3 1
<script type="text/javascript"> function myfunc(numpassed){ var num = numpassed; return function(x){ setvalue = function(newval){ num = newval; return (num + x); }; }; } var myfunction = myfunc(3); myfunction.setvalue(1); console.log(myfunction(4)); </script>
when run this, gives me error:
object function (x) has no method 'setvalue'
i tried returning setvalue() still method not being recognized.
<script type="text/javascript"> function myfunc(numpassed){ var num = numpassed; return function(x){ return setvalue = function(newval){ num = newval; return (num + x); }; }; } var myfunction = myfunc(3); myfunction.setvalue(1); console.log(myfunction(4)); </script>
if understand correctly, you'd myfunc
create function add input x
value numpassed
, allow numpassed
overridden @ later time using setvalue
. if that's case, code should this:
function myfunc(numpassed){ var num = numpassed; function add(x) { return num + x; }; add.setvalue = function(newval) { num = newval; }; return add; }
since myfunc
returns add
, want publicly accessible return value must property of add
.
Comments
Post a Comment