ECMAScript規范為所有函數都包含兩個方法(這兩個方法非繼承而來),`call`和`apply`。這兩個函數都是在特定的作用域中調用函數,能改變函數的作用域,實際上是改變函數體內`this`的值 。
### call
call(thisObj,Object)
調用一個對象的一個方法,以另一個對象替換當前對象。
call 方法可以用來代替另一個對象調用一個方法。call 方法可將一個函數的對象上下文從初始的上下文改變為由 thisObj 指定的新對象.如果沒有提供 thisObj 參數,那么 Global 對象被用作 thisObj
### apply(thisObj,[argArray])
應用某一對象的一個方法,用另一個對象替換當前對象。
如果 argArray 不是一個有效的數組或者不是 arguments 對象,那么將導致一個 TypeError。如果沒有提供 argArray 和 thisObj 任何一個參數,那么 Global 對象將被用作 thisObj, 并且無法被傳遞任何參數