隨着函數使用場合的不一樣,this的值會發生變化。可是有一個總的原則,那就是this指的是,調用函數的那個對象。數組
a.若是是通常函數,this指向全局對象window;app
b.在嚴格模式下"use strict",爲undefined.函數
c.對象的方法裏調用,this指向調用該方法的對象.this
d.構造函數裏的this,指向建立出來的實例.spa
定義一個_this變量來存儲this值,使全局對象裏面的this 指向person 的this對象
this最近的函數是全局對象setTimeoutblog
如下屬於函數的方法ip
改變this的指向而且執行調用函數變量
.call(), call(thisScope, arg1, arg2, arg3...)構造函數
.apply(), apply(thisScope, [arg1, arg2, arg3...]);兩個參數
而bind 改變this的指向,返回的是函數
.bind() bind(thisScope, arg1, arg2, arg3...)
call,能夠傳入多個參數,改變this指向後馬上調用函數
apply,能夠傳入數組
bind改變this指向後,返回的是函數
----------------------------------------------------------------------