Skip to content Skip to sidebar Skip to footer

Arrow Function And This Inside A Constructor Function

I have read this paragraph about the this keyword : https://bonsaiden.github.io/JavaScript-Garden/#function.this In this first case this refers to global objet, and it seems totall

Solution 1:

Functions ->No separate this

Until arrow functions, every new function defined its own this value (a new object in the case of a constructor, undefined in strict mode function calls, the base object if the function is called as an "object method", etc.). This proved to be less than ideal with an object-oriented style of programming

Read more about the new keyword here

The constructor function ... is called with the specified arguments, and with this bound to the newly created object.

The bar() constructor defines this as itself.

Solution 2:

Although I myself am far from good with objects (need to work on that), I think that when you do const test = new Test() you initialize a new object. That way, the scope(?) of this references only to the newly created object, thus why you do this.foo and later on you reference to that foo property by using obj.foo. On the other hand, when you just do const obj = { .... }, you don't actually initialize a new object, so the this goes straight to the global object - the window. So, const test = new Test creates a new object, while using only const obj = {} is not a new object and this by default goes to the window object.

Post a Comment for "Arrow Function And This Inside A Constructor Function"