大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java學(xué)習(xí) JavaScript面試總結(jié):輕松搞定this問題

JavaScript面試總結(jié):輕松搞定this問題

更新時(shí)間:2019-12-09 16:25:57 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2573次

 

  如果大家接觸到的編程語言足夠多,就會(huì)發(fā)現(xiàn)幾乎在大部分編程語言里邊都有this關(guān)鍵字,恐怕最難理解的要屬于JavaScript中的this了。

79 拷貝.jpg

  不同的環(huán)境this不同,不同的對(duì)象this不同。

  你曾經(jīng)有沒有被面試中的this問題難倒過?今天知了堂的蛋糕哥哥給大家?guī)韙his的面試干貨,結(jié)合案例讓你輕松解決面試中的this問題。

  什么是this

  this是js的一個(gè)關(guān)鍵字,它指代的是一個(gè)對(duì)象的引用。

  當(dāng)一個(gè)函數(shù)被調(diào)用時(shí),會(huì)創(chuàng)建一個(gè)執(zhí)行上下文,此執(zhí)行上下文會(huì)記錄這個(gè)函數(shù)在哪里被調(diào)用(調(diào)用棧)、函數(shù)的調(diào)用方法、傳入的參數(shù)等信息。而this就是記錄這個(gè)函數(shù)在哪里被調(diào)用的,在哪里被調(diào)用,這個(gè)函數(shù)里的this就指向誰。 所以,this指向取決于函數(shù)的調(diào)用方式。

  this關(guān)鍵字的作用

  this 提供了一種更優(yōu)雅的方式來隱式“傳遞”一個(gè)對(duì)象引用,代碼設(shè)計(jì)將更利于復(fù)用。

  總結(jié) 簡(jiǎn)單的話:this返回的當(dāng)前函數(shù)被調(diào)用的那個(gè)對(duì)象 。

  this的使用場(chǎng)景

  1.全局使用 this === window(嚴(yán)格模式下IIFEthis為undefined)

  2.函數(shù)當(dāng)中 在全局調(diào)用這個(gè)fn() this === window

  3.在方法當(dāng)中使用 this === 調(diào)用當(dāng)前這個(gè)函數(shù)的所在的對(duì)象

  4.構(gòu)造函數(shù),this指向的是 new 創(chuàng)建出來的實(shí)例對(duì)象

  5.通過 bind,call,apply 操作符來顯示的設(shè)置 this的指向

  6.ES6的箭頭函數(shù),沒有自己的this,父作用域的this

  常見面試題分享

  1.面試題一

  var name = "window"

  var obj = {

  name:"my Object",

  getName:function(){

  console.log(this.name);

  return function(){

  return this.name

  }

  }

  }

  var fun = obj.getName(); //輸出?

  fun()//輸出?

 

  答案:第一個(gè)輸出的my Object,第二個(gè)輸出的是window,小伙伴們答對(duì)了么?

 

  詳解:

  首先第一個(gè)很好解釋,getName方法是obj調(diào)用的,所以根據(jù)使用場(chǎng)景3,方法誰調(diào)用,this執(zhí)行誰。 關(guān)鍵是第二個(gè),調(diào)用了getName后返回一個(gè)匿名函數(shù),把這個(gè)函數(shù)的引用賦值給了fun,然后fun在window環(huán)境下被調(diào)用,所以根據(jù)場(chǎng)景2,此時(shí)的this為window(有小伙伴是不是想到閉包呢?跟閉包一點(diǎn)關(guān)系都沒有喲~)

  var x = 3;

  var foo = {

  x: 2,

  baz: {

  x: 1,

  bar: function() {

  return this.x;

  }

  }

  }

  var go = foo.baz.bar;

  foo.baz.bar()//輸出?

  go()//輸出?

  答案:第一個(gè)輸出1,第二個(gè)輸出3(.運(yùn)算符優(yōu)先級(jí)要高于())。

  如果你答對(duì)了,恭喜你基本掌握了this的調(diào)用。

  其實(shí)在開發(fā)中,并不會(huì)去寫像面試那么繞的東西。面試題是為了更深入的洞悉應(yīng)聘者的掌握情況,所以也有很大的參考意義!  

35 拷貝.jpg

       以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“JavaScript面試總結(jié):輕松搞定this問題”的內(nèi)容,希望對(duì)大家有幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。

 

相關(guān)推薦

最新最全java面試題及答案(初級(jí)到高級(jí))

史上最全的中高級(jí)JAVA工程師面試題及答案匯總

Java高級(jí)開發(fā)工程師面試題

2019史上最全java面試題題庫大全800題

哪有資深java工程師面試題

 

提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 离线枕边人国语在线影视 | 国产精品精品 | 亚洲综合视频一区 | 香蕉视频亚洲 | 五月天婷婷在线视频国产在线 | 91亚洲国产三上悠亚在线 | 亚洲精品综合一区在线 | www.伊人久久 | 亚洲国产婷婷综合在线精品 | 97精品国产高清在线看入口 | 国产成人精品一区二区三区 | 日本不卡在线播放 | 国产网站视频 | 久久黄色一级视频 | 九九视频免费在线 | 性欧美一级毛片欧美片 | 成年人福利网站 | 99久久精品国产综合一区 | 久久精品一区二区 | 四虎成人免费视频 | 理论一级片 | 久久国产精品亚洲综合 | 久久久久亚洲国产 | 亚洲图欧美日韩色综合图 | 精品视频在线观看一区二区三区 | 一区二区在线 | 日本九九视频 | 中日韩欧美在线观看 | 国产操比| 日本19xxxxxxxx69| 99国产福利| 免费看国产一级特黄aa大片 | 欧美特欧美特级一片 | 日本一级毛片视频网站 | 九色国产在视频线精品视频 | 国产免费一区二区三区免费视频 | 天天干天天干 | 综合爱| 久久久精品波多野结衣 | 久久国产自偷自免费一区100 | 亚洲一区亚洲二区 |