Özgün Bal
Software Developer, Javascript Enthusiast
this & Object prototypes
function increment() {
this.count++;
}bindings
function iHaveAThis () {
console.log(this.a);
}
var obj = {
a: 3,
foo: iHaveAThis
}
// default binding
iHaveAThis();
// implicit binding
obj.foo();
// explicit binding
iHaveAThis.call(obj);
// new binding
function classish (a) {
this.a = a;
}
var classLike = new classish(3);
console.log(classLike.a) // prints 3
Precedence
var obj = {a : 3};
function delay (ms) {
setTimeout(() => {
console.log(this.a);
}, ms);
}
delay.apply(obj, 2000);By Özgün Bal