摘要:常用場(chǎng)景以函數(shù)形式調(diào)用指向指向了以方法形式調(diào)用指向調(diào)用方法的那個(gè)對(duì)象指向顏色為紅色構(gòu)造函數(shù)調(diào)用指向?qū)嵗膶?duì)象此處分別指向的實(shí)例對(duì)象控制臺(tái)輸出使用對(duì)象的方法時(shí)指向報(bào)錯(cuò)因?yàn)槭堑囊粋€(gè)方法更改錯(cuò)誤使顏色為調(diào)用了這個(gè)方法此時(shí)的指向此操作將指向的賦給則
THIS常用場(chǎng)景 1、以函數(shù)形式調(diào)用,this指向window
function fn(m,n){ m=2; n=3; console.log(this.m,n);//undefined,this指向了window } fn();2、以方法形式調(diào)用,this指向調(diào)用方法的那個(gè)對(duì)象
box.onclick =function(){ this.style.backgroundColor = "red"; //this指向box,box顏色為紅色 }3、構(gòu)造函數(shù)調(diào)用,this指向?qū)嵗膶?duì)象
function Person(age , name ) { this.a = age ; this.b = name; console.log(this) // 此處 this 分別指向 Person 的實(shí)例對(duì)象 p1 p2 } var p1 = new Person(18, "zs") var p2 = new Person(18, "ww") 控制臺(tái)輸出: Person?{a: 18, b: "zs"} Person?{a: 18, b: "ww"}4、使用window對(duì)象的方法時(shí),指向window
var box =document.getElementById("box"); box.onclick =function(){ setTimeout(function(){ this.style.backgroundColor="yellow" },1000) } //報(bào)錯(cuò),因?yàn)閟etTimeout是window的一個(gè)方法.
更改錯(cuò)誤,使box顏色為yellow
var box =document.getElementById("box"); box.onclick =function(){ var me = this;//box調(diào)用了這個(gè)方法,此時(shí)的this指向box,此操作將指向box的this賦給me,則得到的me的指向?yàn)橹赶騮his setTimeout(function(){ me.style.backgroundColor="yellow"http://此時(shí)的me.style就指的是box的style },1000) }5、多重場(chǎng)景改變this指向
box.onclick=function(){ function fn1(){ console.log(this); } fn1(); //事件觸發(fā)了fn1,在函數(shù)內(nèi)部,以函數(shù)形式調(diào)用this依舊指向window console.log(this);//事件處理函數(shù)中的this,該事件由誰(shuí)觸發(fā),this就指向誰(shuí) }; 控制臺(tái)輸出: Window?{postMessage: ?, blur: ?, focus: ?, close: ?, parent: Window,?…}box
box.onclick=function(){ var me = this; function fn1(){ console.log(me); } fn1(); //事件觸發(fā)了fn1,me指向box,所以console的是box console.log(this);//事件處理函數(shù)中的this,該事件由誰(shuí)觸發(fā),this就指向誰(shuí) }; 控制臺(tái)輸出:6、call和apply改變this指向boxbox
var person={ name : "lili", age: 21 }; function aa(x,y){ console.log(x,y); console.log(this.name); } aa.call(person,4,5); 控制臺(tái)輸出 //4 5 //lili 使用call,this指向call后面緊跟的元素,this就指向person
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/117478.html
摘要:常用場(chǎng)景以函數(shù)形式調(diào)用指向指向了以方法形式調(diào)用指向調(diào)用方法的那個(gè)對(duì)象指向顏色為紅色構(gòu)造函數(shù)調(diào)用指向?qū)嵗膶?duì)象此處分別指向的實(shí)例對(duì)象控制臺(tái)輸出使用對(duì)象的方法時(shí)指向報(bào)錯(cuò)因?yàn)槭堑囊粋€(gè)方法更改錯(cuò)誤使顏色為調(diào)用了這個(gè)方法此時(shí)的指向此操作將指向的賦給則 THIS常用場(chǎng)景 1、以函數(shù)形式調(diào)用,this指向window function fn(m,n){ m=2; n=3; console...
摘要:常用場(chǎng)景以函數(shù)形式調(diào)用指向指向了以方法形式調(diào)用指向調(diào)用方法的那個(gè)對(duì)象指向顏色為紅色構(gòu)造函數(shù)調(diào)用指向?qū)嵗膶?duì)象此處分別指向的實(shí)例對(duì)象控制臺(tái)輸出使用對(duì)象的方法時(shí)指向報(bào)錯(cuò)因?yàn)槭堑囊粋€(gè)方法更改錯(cuò)誤使顏色為調(diào)用了這個(gè)方法此時(shí)的指向此操作將指向的賦給則 THIS常用場(chǎng)景 1、以函數(shù)形式調(diào)用,this指向window function fn(m,n){ m=2; n=3; console...
摘要:實(shí)例可以通過(guò)代理來(lái)找到它,并用來(lái)檢測(cè)其構(gòu)造函數(shù)。經(jīng)典繼承圖這也是通過(guò)構(gòu)造函數(shù)來(lái)創(chuàng)建對(duì)象,但是在這一系列的對(duì)象和實(shí)例之間我們的焦點(diǎn)是放在原型鏈上。盡管,但構(gòu)造函數(shù)的屬性并不是對(duì)象自己的屬性,它實(shí)際上是通過(guò)尋找原型鏈獲得的,即所指向的地方。 繼承是面向?qū)ο缶幊陶Z(yǔ)言的一大核心功能點(diǎn),雖然JavaScript并不是一門(mén)真正意義上的面向?qū)ο蟮木幊陶Z(yǔ)言,但也通過(guò)某種手段實(shí)現(xiàn)了繼承這一功能,最常見(jiàn)的...
摘要:很多高級(jí)編程語(yǔ)言都給新創(chuàng)建的對(duì)象分配一個(gè)引用自身的指針比如中的指針,中的,也有指針,雖然它的指向可能相對(duì)復(fù)雜些,但是指向的,永遠(yuǎn)只可能是對(duì)象。 很多高級(jí)編程語(yǔ)言都給新創(chuàng)建的對(duì)象分配一個(gè)引用自身的指針,比如JAVA、C++中的this指針,python中的self,JavaScript也有this指針,雖然它的指向可能相對(duì)復(fù)雜些,但是this指向的,永遠(yuǎn)只可能是對(duì)象。 一、在一般函數(shù)方法...
閱讀 1003·2023-04-25 14:20
閱讀 1879·2021-11-24 10:20
閱讀 3783·2021-11-11 16:55
閱讀 2927·2021-10-14 09:42
閱讀 3478·2019-08-30 15:56
閱讀 1179·2019-08-30 15:55
閱讀 1077·2019-08-30 15:44
閱讀 787·2019-08-29 11:28