Los Métodos call y apply

Los métodos call y apply nos permiten invocar una función como si fuera un método de algún otro objeto.

[~/Dropbox/src/javascript/learning]$ cat call.js 
var Bob = {
  name: "Bob",
  greet: function() {
    console.log("Hi, I'm " + this.name);
  }
}
 
var Alice = {
  name: "Alice",
};

Bob.greet.call(Alice);

[~/Dropbox/src/javascript/learning]$ node call.js
Hi, I'm Alice

  1. Function.apply and Function.call in JavaScript
    > function f() { console.log(this.x); }
    undefined
    > f.toString()
    'function f() { console.log(this.x); }'
    > z = { x : 99 }
    { x: 99 }
    > f.call(z)
    99
    undefined
    >
    
  2. > o  = { x : 15 }
    { x: 15 }
    > function f(m) { console.log(m+" "+this.x); }
    undefined
    > f("invoking f")
    invoking f 10
    undefined
    > f.call(o, "invoking f via call");
    invoking f via call 15
    undefined
    



Casiano Rodriguez León 2015-06-18