javascript - JS - Confusion on function that rewrite tyself -
to js experts, im still trying learn js using books stoyan stefanov (object-oriented js).
get stuck on page 83, following codes must work,
a = a(); // first call function a() { alert('a'); = function() { // this. redefining functions. alert('b'); }; } a(); // second call the book suggested if call/invoke 2nd time alert b after alert occur.
however, instead of working gives typeerror: not function after alert a.
whats mistake here??
thank you
the first line:
a = a(); calls function , assigns return value a. function's return value undefined - function doesn't explicitly return value return implicitly return undefined (unless called new, can ignore here). on last line when a() saying undefined(). , of course undefined not function.
did code in book a = a();? change a() , it'll work expected.
alternatively change function return new function on first call rather overwriting a directly:
a = a(); // first call function a() { alert('a'); // following line changed return new function instead // of assigning return function() { alert('b'); }; } a(); // second call
Comments
Post a Comment