IT培訓(xùn)網(wǎng)
IT在線學(xué)習(xí)
4. 事件綁定中的this
事件處理函數(shù)中的this,無論是綁定的是命名函數(shù)還是匿名函數(shù),都可以認(rèn)為是元素引用的一個(gè)方法,雖然這種函數(shù)的調(diào)用具有其隱蔽性,但是我們還是應(yīng)該視為其執(zhí)行環(huán)境是元素引用,所以this指向觸發(fā)事件(調(diào)用方法)的元素。而addEventListener 方法中的事件函數(shù)默認(rèn)是作為調(diào)用addEventListener對(duì)象的方法,所以同樣觸發(fā)事件的元素。
- oBox.onclick = function(){
- console.log(this);
- }
- // oBox.onclick();
- oBox.addEventListener("click",function(){
- console.log(this)
- });
5. 閉包中的函數(shù)
在上述案例中,我們雖然是通過調(diào)用obj對(duì)象的foo方法獲取了匿名函數(shù),但是由于匿名函數(shù)的執(zhí)行具有的全局性,而這時(shí)并沒有出現(xiàn)實(shí)際的其他調(diào)用者,所以函數(shù)內(nèi)的this指向全局對(duì)象window。當(dāng)然這只是一個(gè)常見的案例,this的指向具體情況還是要結(jié)合實(shí)際調(diào)用者具體分析。
- var obj = {
- foo:function(){
- return function(){
- console.log(this);
- }
- }
- }
- obj.foo()();
6. new 操作符調(diào)用函數(shù)
new 操作符調(diào)用函數(shù)內(nèi)的this是一個(gè)恒定值,指向的是函數(shù)執(zhí)行前創(chuàng)建的對(duì)象。
- function CreateStu(){
- console.log(this);
- }
- new CreateStu();
7. 其他的this
call和apply方法(作用相同,參數(shù)不同)都可以強(qiáng)制改變this的指向,可以將函數(shù)執(zhí)行時(shí)的this指向方法的第一個(gè)參數(shù)。
- var obj1 = {
- foo:function(){
- console.log(this);
- }
- }
- var obj2 = {}
- obj1.foo.call(obj2);
>>本文地址:http://liujunjsxg.cn/zhuanye/2020/48500.html
聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
1 您的年齡
2 您的學(xué)歷
3 您更想做哪個(gè)方向的工作?