Table of Contents
Does not have its own bindings to this
or super
, and should not be used as methods
.
var obj1 = { a: 123, b: function() { return this.a; } } var obj2 = { a: 123, b: () => { return this.a; } } console.log("obj1: ", obj1.b()); console.log("obj2: ", obj2.b()); ========================================== result ========================================== obj1: 123 obj2: undefined
Using call/apply and bind
var obj1 = { a: 111, b: (a,b) => { return `${this.a} ${a} ${b}`; }, c: function(a,b) { return `${this.a} ${a} ${b}`; } } var obj2 = { a: 123 } console.log("obj1: ", obj1.b.apply(obj2, ['one', 'two'])); console.log("obj1: ", obj1.b.bind(obj2)()); console.log("obj1: ", obj1.c.apply(obj2, ['one', 'two'])); console.log("obj1: ", obj1.c.bind(obj2, 'one', 'two')()); ===================================================== result ===================================================== obj1: undefined one two obj1: undefined undefined undefined obj1: 123 one two obj1: 123 one two