每個函數都包含兩個非繼承來的方法call()和apply();
使用call()或者apply(),可以改變this的指向;
假設要改變fn函數內部的this的指向,指向obj,那麼可以fn.call(obj);或者fn.apply(obj);
.
.
.
call和apply的區別:
call和apply的區別在於參數,他們兩個的第一個參數都是一樣的,表示調用該函數的對象;
apply的第二個參數是數組,是[arg1,arg2,arg3]這種形式,而call是arg1,arg2,arg3這樣的形式。
.
.
.
另外還可以用bind函數:
var bar=fn.bind(obj);
那麼fn中的this就指向obj對象了,bind函數返回新的函數,這個函數內的this指針指向obj對象。