一、首先要明確:
1、誰最終調用函數,this指向誰。
2、this指向的永遠只可能是對象!
3、this指向誰永遠不取決于this寫在哪,而取決于函數在哪里調用!
4、this指向的對象,我們稱之為函數的上下文context,也叫做函數的調用者是誰!
二、this指向的規律(與函數調用的方式息息相關)
this指向的情況取決于函數調用的方式有哪些(總結如下):
1、通過函數名()直接調用--this 指向window;
function func(){
console.log(this);
}
func();2、通過對象.函數名()調用的--this指向這個對象
狹義對象: this指向--obj
var obj={
name:"obj",
func1:func
};
obj.func1();廣義對象: this指向--div
document.getElementById("div").onclick=function(){this.style.backgroundColor="red";}3、this指向——數組arr
var arr=[func,1,2,3]; arr[0]();
4、函數作為window內置函數的回調函數調用,this指向window setInterval,setTimout等
setInterval(func,1000); setTimeout(func,1000)
5、函數作為構造函數,用new關鍵字調用時:this指向新定義的對象obj
var obj=new func();
6、通過call、apply、bind調用,this指向我們規定的對象。
Func.call(obj,參數一,參數2,參數3.。。。)
Func.allply(obj,[ 參數一,參數2,參數3.。。。])
Func.bind(obj)( 參數一,參數2,參數3) var f = func.bind(obj). f(…….);
下一篇: 制作404頁面的重要性
關鍵詞:



