Javascript spec of 2015
var -> not suggested , does functional scoping, hoisted, can be redifined let -> block scoping, can't be rededclared, can be reassigned, not hoisted const -> block scoping, can't be rededclared, can't be reassigned, not hoisted global -> rarely use this
- function invocation
- EX: someFunc() - > this will be the window or global object
- method invoation
- EX : someObj.method -> this will be the thing to the left of the method
- bind/call/apply
- EX : loook at index.js
- constructor invocation
- new Whatever -> this will be the new instance being created! and also what it's returning