javascript - Can someone explain working of this js code with reference to 'this' keyword? -
js code is:
this.sound1 ="global"; function cat(){ this.sound = 'meawo!!!!'; this.sound1 = 'meawooooo!!!!'; meawo1 = function(){ console.log(this.sound1); console.log(this); }; function meawo2(){ console.log(this.sound1); console.log(this); }; this.meawo = function(){ console.log(this.sound); console.log(this); meawo1(); meawo2(); }; }; var c = new cat(); c.meawo(); question: how come this inside of meawo1(function expression) & meawo2(function expression declaration) referring "global" , not object c? why that?
always remember simple tip while wanting know object this refer to.
obj.method(); in above, method's called on obj, , hence this in method it's called on, i.e obj = this.
in case, though meowo called on c, meowo1 , meowo2 aren't on object want refer to.
functions don't have explicit scope called, default global context, though function isn't global , can leverage variables in parent context due closure.

Comments
Post a Comment