當(dāng)前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JavaScript进阶2-学习笔记
生活随笔
收集整理的這篇文章主要介紹了
JavaScript进阶2-学习笔记
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- JavaScript進(jìn)階2-學(xué)習(xí)筆記
- this指針
- 如何改變this指向
- 事件委托、事件冒泡
JavaScript進(jìn)階2-學(xué)習(xí)筆記
this指針
This是什么?
this是Javascript語言的一個(gè)關(guān)鍵字。 它代表函數(shù)運(yùn)行時(shí),自動(dòng)生成的一個(gè)內(nèi)部對(duì)象,只能在函數(shù)內(nèi)部使用,隨著函數(shù)使用場(chǎng)合的不同,this的值會(huì)發(fā)生變化,指向是不確定的,也就是說是可以動(dòng)態(tài)改變的;但是有一個(gè)總的原則,那就是this指的是,調(diào)用函數(shù)的那個(gè)對(duì)象。 (this 一般情況下,都是指向函數(shù)的擁有者)
如何改變this指向
//如何改變this指向 apply callvar a = 10;function f6(name,age){return this.a +" " +name +" "+age;};f6('a',10); // 10 a 10var obj6 ={a:100,action:f6};obj6.action('a',10); // 100 a 10//修改this指向 //1) obj6.action 指向windowconsole.log(obj6.action.call(window,'w',10)); // 10 w 10console.log(obj6.action.apply(this,['w',10])); // 10 w 10console.log(obj6.action.apply(obj6,['w',10])); // 100 w 10//bind() 綁定thisvar a = 10;function f1(name,age){return this.a +" " +name +" "+age;};var obj1 ={a:11111,action1:f1};var obj2 ={a:22222,action2:f1};var a1 = f1.bind(obj1,'a',10);a1() // f1()無調(diào)用者 但是綁定obj1, this指向就是obj1console.log(a1.call(obj2,'a',10)); //11111 a 10 綁定后不能改變thisconsole.log(a1.apply(obj2,['a',10])); //面試題 //在函數(shù)自執(zhí)行里,this 指向的是 window 對(duì)象var number = 1;var obj = {number:2,showNumber:function(){this.number = 3;(function(){console.log(this.number);})();console.log(this.number);}};obj.showNumber(); //1 3事件委托、事件冒泡
【可參考】https://www.cnblogs.com/Chen-XiaoJun/p/6210987.html
總結(jié)
以上是生活随笔為你收集整理的JavaScript进阶2-学习笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaScript进阶1-学习笔记
- 下一篇: JavaScript进阶3-学习笔记