js中的一個核心概念就是對this的理解,關於this前面也有說過,不過在有些狀況下,仍是須要手動去改變this的指向,這裏總結一下,js中關於this操做的三種方法html
這三個方法都是Function中的內置函數,一個函數調用call、apply、bind回去原型鏈中線上尋找這三個方法,這三個方法都用於改變this的指向問題,雖然他們做用相同,做爲三種不一樣的方法,他們之間依然有一些差異數組
一、基本應用app
看如下代碼函數
默認狀態下this指向window對象,當傳入的值爲空、null或者undefined的時候,this也是指向window對象,其他傳入的基本類型值,this均指向傳入值自己this
二、在對象繼承及傳參時的應用3d
一樣直接看代碼htm
從上面的代碼中能夠看出,call、apply、bind三者之間的差異對象
call和apply用法基本相同,只是傳參的方式不一樣而已,call是一個一個的傳值,apply則傳入一個數組blog
bind方法的傳參方式同call相似,可是bind修改了this指向以後並不會立刻起做用,須要調用如下才能夠繼承