久久无码中文字幕_日韩精品无码一本二本三_久久精品呦女暗网_欧美一级夜夜爽_久久精品国产99久久99久久久

13
2017/05

JS中精選this關(guān)鍵字的指向規(guī)律你了解嗎?

發(fā)布時間:2017-05-13 17:58:29
發(fā)布者:jiangbing
瀏覽量:
0

一、首先要明確:

1、誰最終調(diào)用函數(shù),this指向誰。

2、this指向的永遠只可能是對象!

3、this指向誰永遠不取決于this寫在哪,而取決于函數(shù)在哪里調(diào)用!

4、this指向的對象,我們稱之為函數(shù)的上下文context,也叫做函數(shù)的調(diào)用者是誰!

二、this指向的規(guī)律(與函數(shù)調(diào)用的方式息息相關(guān))

this指向的情況取決于函數(shù)調(diào)用的方式有哪些(總結(jié)如下):

1、通過函數(shù)名()直接調(diào)用--this 指向window;

function func(){
         console.log(this);
         }
func();

2、通過對象.函數(shù)名()調(diào)用的--this指向這個對象

狹義對象: this指向--obj

var obj={
      name:"obj",
      func1:func
     };
     obj.func1();

 廣義對象: this指向--div

 document.getElementById("div").onclick=function(){this.style.backgroundColor="red";}

3、this指向——數(shù)組arr

var arr=[func,1,2,3];
     arr[0]();

4、函數(shù)作為window內(nèi)置函數(shù)的回調(diào)函數(shù)調(diào)用,this指向window setInterval,setTimout等

setInterval(func,1000);         
setTimeout(func,1000)

5、函數(shù)作為構(gòu)造函數(shù),用new關(guān)鍵字調(diào)用時:this指向新定義的對象obj

 var obj=new func();

6、通過call、apply、bind調(diào)用,this指向我們規(guī)定的對象。

Func.call(obj,參數(shù)一,參數(shù)2,參數(shù)3.。。。)

Func.allply(obj,[ 參數(shù)一,參數(shù)2,參數(shù)3.。。。])

Func.bind(obj)( 參數(shù)一,參數(shù)2,參數(shù)3)   var f = func.bind(obj).   f(…….);


關(guān)鍵詞:
返回列表