Syntax this
function add(c, d) { return this.a + this.b + c + d; } var o = {a: 1, b: 3}; // The first parameter is the object to use as // 'this', subsequent parameters are passed as // arguments in the function call console.log(add.call(o, 5, 7)); // 1 + 3 + 5 + 7 = 16 // The first parameter is the object to use as // 'this', the second is an array whose // members are used as the arguments in the function call console.log(add.apply(o, [10, 20])); // 1 + 3 + 10 + 20 = 34
function f() { return this.a; } var g = f.bind({a: 'azerty'}); console.log(g()); // azerty var h = g.bind({a: 'yoo'}); // bind only works once! console.log(h()); // azerty var o = {a: 37, f: f, g: g, h: h}; console.log(o.f(), o.g(), o.h()); // 37, azerty, azerty
This on the object's prototype chain
var o = {f: function() { return this.a + this.b; }}; var p = Object.create(o); p.a = 1; p.b = 4; console.log(p.f()); // 5