精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

這 7 道關于this的面試題,你能答對幾個?

開發 前端
在 JavaScript 中,this 是函數調用上下文。正是由于 this 的行為很復雜,所以在 JavaScript 面試中,總是會問到有關 this 的問題。

在 JavaScript 中,this 是函數調用上下文。正是由于 this 的行為很復雜,所以在 JavaScript 面試中,總是會問到有關 this 的問題。

做好的準備面試的方法是練習,所以本文針對 this 關鍵字整理了 7 個有趣的面試。

注意:下面的 JavaScript 代碼以非嚴格模式運行。

[[385157]]

1. 變量與屬性

以下代碼輸出什么:

  1. const object = { 
  2.   message: 'Hello, World!', 
  3.  
  4.   getMessage() { 
  5.     const message = 'Hello, Earth!'
  6.     return this.message; 
  7.   } 
  8. }; 
  9.  
  10. console.log(object.getMessage()); // => ? 

答案:

輸出:'Hello, World!'

'object.getMessage() 是方法調用,這就是為什么方法中的 this 等于 object的原因。

方法中還有一個變量聲明 const message ='Hello,Earth!',該變量不會影響 this.message 的值。

2. 貓的名字

以下代碼輸出什么:

  1. function Pet(name) { 
  2.   this.name = name; 
  3.  
  4.   this.getName = () => this.name; 
  5.  
  6. const cat = new Pet('Fluffy'); 
  7.  
  8. console.log(cat.getName()); // => ? 
  9.  
  10. const { getName } = cat; 
  11. console.log(getName());     // =>

答案:輸出:'Fluffy' 和 'Fluffy'

當一個函數被當作構造函數調用時( new Pet('Fluffy') ),構造函數內部的 this 等于構造的對象。

Pet 構造函數中的 this.name = name 表達式在構造的對象上創建 name 屬性。

this.getName = () => this.name this.getName =()=> this.name 在構造的對象上創建方法 getName。因為使用了箭頭函數,所以箭頭函數中的 this 等于外部作用域中的 this ,也就是構造函數 Pet。

調用 cat.getName() 和 getName() 會返回表達式 this.name,其結果為 'Fluffy'。

3. 延遲輸出

以下代碼輸出什么:

  1. const object = { 
  2.   message: 'Hello, World!', 
  3.  
  4.   logMessage() { 
  5.     console.log(this.message); // => ? 
  6.   } 
  7. }; 
  8.  
  9. setTimeout(object.logMessage, 1000); 

答案:

延遲1秒鐘后,輸出:undefined

盡管 setTimeout() 函數使用 object.logMessage 作為回調,但仍把 object.logMessage 作為常規函數而非方法調用。并且在常規函數調用中 this 等于全局對象,在瀏覽器環境中是 window。這就是 logMessage 方法內的 console.log(this.message) 輸出 window.message 的原因,后者是 undefined。

挑戰:怎樣修改這段代碼使其輸出 'Hello, World!'?在下面的評論中寫出你的解決方案*

4:補全代碼

補全代碼,使結果輸出 "Hello,World!" 。

  1. const object = { 
  2.   message: 'Hello, World!' 
  3. }; 
  4.  
  5. function logMessage() { 
  6.   console.log(this.message); // => "Hello, World!" 
  7.  
  8. // Write your code here... 

答案:

至少有 3 種方式可以把 logMessage() 作為對象上的方法調用。任何一個都被看作是正確答案:

  1. const object = { 
  2.   message: 'Hello, World!' 
  3. }; 
  4.  
  5. function logMessage() { 
  6.   console.log(this.message); // => 'Hello, World!' 
  7.  
  8. // 使用 func.call() 方法 
  9. logMessage.call(object); 
  10.  
  11. // 使用 func.apply() 方法 
  12. logMessage.apply(object); 
  13.  
  14. // 使用函數綁定 
  15. const boundLogMessage = logMessage.bind(object); 
  16. boundLogMessage(); 

5:問候與告別

以下代碼輸出什么:

  1. const object = { 
  2.   who: 'World', 
  3.  
  4.   greet() { 
  5.     return `Hello, ${this.who}!`; 
  6.   }, 
  7.  
  8.   farewell: () => { 
  9.     return `Goodbye, ${this.who}!`; 
  10.   } 
  11. }; 
  12.  
  13. console.log(object.greet());    // => ? 
  14. console.log(object.farewell()); // => ? 

答案:

輸出:'Hello, World!' 和 'Goodbye, undefined!'

當調用 object.greet() 時,在方法 greet() 內部 this 的值等于 object,因為 greet 是常規函數。所以 object.greet() 返回 'Hello,World!'。

但是 farewell() 是一個箭頭函數,所以箭頭函數中 this 的值總是等于外部作用域的 this。farewell() 的外部作用域是全局作用域,其中 this 是全局對象。所以 object.farewell() 實際上會返回 'Goodbye, ${window.who}!' ,其結果為 'Goodbye, undefined!'。

6. 棘手的 length

以下代碼輸出什么:

  1. var length = 4
  2. function callback() { 
  3.   console.log(this.length); // => ? 
  4.  
  5. const object = { 
  6.   length: 5, 
  7.   method(callback) { 
  8.     callback(); 
  9.   } 
  10. }; 
  11.  
  12. object.method(callback, 1, 2); 

答案:

輸出:4

使用 method() 內部的常規函數調用來調用 callback() 。因為在常規函數調用期間的 this 值等于全局對象,所以在 callback() 函數中 this.length 為 window.length。

位于最外層的第一個語句 var length = 4 在全局對象上創建了屬性 length,所以 window.length 變為 4。

最后,在 callback() 函數內部,``this.length的值為window.length,最后輸出4`。

7. 調用參數

以下代碼輸出什么:

  1. var length = 4
  2. function callback() { 
  3.   console.log(this.length); // 輸出什么 
  4.  
  5. const object = { 
  6.   length: 5, 
  7.   method() { 
  8.     arguments[0](); 
  9.   } 
  10. }; 
  11.  
  12. object.method(callback, 1, 2); 

答案:輸出:3

obj.method(callback, 1, 2) 用了 3 個參數進行調用:callback、1 和 2。結果 method() 內的arguments 特殊變量是有以下結構的類似數組的對象:

  1.   0: callback, 
  2.   1: 1,  
  3.   2: 2,  
  4.   length: 3  

因為 arguments[0]() 是對 arguments 對象上 callback 的方法調用,所以 callback 內部的 this 等于 arguments。結果在 callback() 內部的 this.length 與 arguments.length 是相同的,都是3。

總結

如果你答對了 5 個以上,那么你對 this 關鍵字掌握的情況是很不錯的。

 

責任編輯:趙寧寧 來源: 前端先鋒
相關推薦

2021-03-01 09:39:34

閉包JavaScript開發

2018-11-09 14:00:59

Python編程語言面試題

2021-06-29 10:21:54

this面試前端

2022-03-31 09:50:45

JS面試題

2021-05-08 14:20:27

Redis面試數據庫

2015-09-25 10:44:02

大數據Hadoop

2025-03-11 06:28:21

2021-03-10 08:04:11

this面試題JavaScript

2023-02-04 18:24:10

SeataJava業務

2023-09-13 08:00:57

云原生Java開發者

2010-11-26 10:53:29

戴爾

2024-06-04 14:52:28

2025-10-17 10:00:00

運維Linux

2022-04-08 07:52:17

CSS面試題HTML

2021-03-19 11:08:27

開發技能代碼

2020-04-26 16:55:54

MySQL數據庫

2023-09-04 08:28:34

JavaScripforEach 循環

2015-09-02 14:09:19

面試題程序設計

2021-10-28 11:40:58

回文鏈表面試題數據結構

2020-11-13 16:00:57

SpringCloud面試架構
點贊
收藏

51CTO技術棧公眾號

国产又粗又大又爽的视频| 国产在线拍偷自揄拍精品| 午夜一区二区三区免费| 成人看片网页| 亚洲黄色尤物视频| 玛丽玛丽电影原版免费观看1977 | 蜜桃av乱码一区二区三区| 国产在线视频欧美一区| 动漫精品一区二区| 国产又黄又爽免费视频| 青青久草在线| 国产高清不卡二三区| 国产精品成人av性教育| 国产第一页第二页| 欧美电影《睫毛膏》| 日韩av中文字幕在线| 亚洲最大天堂网| 亚洲淫成人影院| 洋洋av久久久久久久一区| 亚洲免费电影在线观看| 中文字幕视频在线免费观看| av影片在线| 亚洲婷婷在线视频| 日韩精品第一页| 日韩av地址| 成人性生交大合| 欧美成人剧情片在线观看| 亚洲专区区免费| 99国产精品免费网站| 欧美绝品在线观看成人午夜影视| 欧美一区二区三区爽大粗免费| 免费在线观看av| 国产婷婷精品av在线| 国产精品久久精品视| 国产婷婷一区二区三区久久| 免费在线观看日韩欧美| 国产成人精品久久二区二区| 日本三级免费看| 午夜精品剧场| 欧美成年人视频网站| 国产又粗又长又黄的视频| 国产成人精品一区二区免费看京| 日韩av最新在线观看| 国产原创剧情av| av动漫精品一区二区| 日韩视频一区二区在线观看| 91国内在线播放| 欧美91在线|欧美| 欧美群妇大交群中文字幕| 99视频在线视频| 一二区成人影院电影网| 欧美综合一区二区三区| 任你操这里只有精品| 在线成人av观看| 日本韩国精品一区二区在线观看| 日本精品一区在线观看| xxxxxx欧美| 色综合网站在线| 免费看a级黄色片| 97欧美成人| 91精品国产欧美日韩| 中文字幕一二三区| 国产劲爆久久| 精品一区二区三区三区| 非洲一级黄色片| 色呦哟—国产精品| 免费97视频在线精品国自产拍| 激情综合五月网| 99精品国产一区二区青青牛奶| 97激碰免费视频| 久久久久久在线观看| 奇米精品一区二区三区在线观看| 91精品久久久久久久| 精品国产伦一区二区三区| 成人一区二区三区视频| 免费国产一区二区| 日本不卡不卡| 亚洲在线观看免费视频| 91国视频在线| 欧美亚洲人成在线| 精品久久国产字幕高潮| av黄色一级片| 99热在线成人| 91精品国产色综合久久不卡98| 日韩av在线电影| 日日摸夜夜添夜夜添国产精品| 91精品国产综合久久男男| 空姐吹箫视频大全| 国产日韩欧美不卡在线| 国产911在线观看| 美女100%一区| 日韩一区二区精品葵司在线| 成年人网站免费看| 亚洲天堂一区二区三区四区| 午夜免费日韩视频| 在线免费av片| 97久久精品人人做人人爽50路| 日本黄网免费一区二区精品| 在线观看午夜av| 色94色欧美sute亚洲13| 91蝌蚪视频在线| 国产精品羞羞答答在线观看| 欧美伦理91i| 黄色av一区二区| 懂色av一区二区在线播放| 神马欧美一区二区| 日韩伦理精品| 日韩欧美一区在线观看| 谁有免费的黄色网址| 一区在线免费观看| 成人免费福利在线| 久久精品久久久久久久| 国产成人av电影在线观看| 日本一区美女| av资源网在线播放| 日韩一区二区影院| 亚洲毛片亚洲毛片亚洲毛片| 性色一区二区三区| 国产精品二区二区三区| 国产在线一区二区视频| 欧美性猛交一区二区三区精品| 亚洲观看黄色网| 黄色精品免费| 91福利视频导航| av色图一区| 91成人在线观看喷潮| 色哟哟无码精品一区二区三区| 视频在线不卡免费观看| 国产精品第100页| 欧美日韩国产亚洲沙发| 欧美日韩久久久久| 成人在线视频免费播放| 黄色亚洲在线| 国产传媒一区二区| huan性巨大欧美| 91精品久久久久久久久99蜜臂| 天天操天天干天天操天天干| 久热精品在线| 日本不卡二区高清三区| 中文字幕在线直播| 亚洲精品在线观看www| 日产精品久久久久久久| a美女胸又www黄视频久久| 青青青青草视频| 欧美一区二区三区红桃小说| 26uuu国产精品视频| 色一情一乱一区二区三区| 亚洲成av人片一区二区梦乃| 无码人妻精品一区二区三区99不卡| 欧美日韩午夜| 国产乱码精品一区二区三区卡| 在线黄色网页| 亚洲国产精品久久久久秋霞不卡| 国产无套内射又大又猛又粗又爽| 波多野结衣在线aⅴ中文字幕不卡| 日韩激情视频一区二区| 老牛国内精品亚洲成av人片| 欧美伊久线香蕉线新在线| 免费在线国产| 欧美日韩精品一二三区| 麻豆天美蜜桃91| 高清国产一区二区| 狠狠干 狠狠操| 亚洲都市激情| 国产狼人综合免费视频| 18av在线视频| 亚洲精品v欧美精品v日韩精品| 国产精品美女久久久久av爽| 国产精品私房写真福利视频| 亚洲色图欧美自拍| 亚洲高清电影| 日韩欧美一区二区视频在线播放| 亚洲精品自拍| 久久青草福利网站| 黄色片在线播放| 91麻豆精品国产综合久久久久久 | 亚洲一区 二区 三区| 国产高清一区视频| 韩漫成人漫画| 久久综合电影一区| 午夜成人免费影院| 欧美日韩国产乱码电影| 国产亚洲精久久久久久无码77777| 91亚洲国产成人精品一区二三 | 视频在线日韩| 欧美理论片在线观看| 青青草视频在线免费观看| 91精品在线麻豆| 国产成年人免费视频| 欧美国产精品一区二区三区| 欧美丰满熟妇bbb久久久| 久久一综合视频| 欧美美女黄色网| 国产精品手机在线播放| 都市激情久久久久久久久久久| 丝袜美腿一区| 欧美国产中文字幕| 97超碰国产一区二区三区| 精品对白一区国产伦| 老熟妇一区二区三区啪啪| 亚洲福利一二三区| 亚洲国产精品一区二区久久hs| 成人av高清在线| 五月天激情播播| 玖玖精品视频| 国产视频一视频二| 欧美激情aⅴ一区二区三区| 欧美资源一区| 国内精品偷拍| 91网免费观看| 欧美天堂一区| 国产精品99导航| 17videosex性欧美| 欧美另类高清videos| √天堂资源地址在线官网| 日韩精品在线视频| 好吊色一区二区| 欧美一区二区视频网站| 中文字幕你懂的| 91国偷自产一区二区开放时间| 日本一区二区三区四区五区| 一区二区三区在线观看网站| eeuss中文字幕| 久久精品亚洲精品国产欧美kt∨| 欧美性生交xxxxx| 国产不卡视频在线观看| 五月天开心婷婷| 麻豆精品一区二区三区| 精品久久久噜噜噜噜久久图片 | 日本精品久久久久| 日韩午夜av电影| 精品国产18久久久久久| 9191久久久久久久久久久| 91久久久久久久久久久久| 欧美在线色视频| 国产精品成人无码| 欧美日韩国产bt| 国产精品久久久久毛片| 欧美日本精品一区二区三区| 亚洲天堂中文网| 欧美日韩视频在线第一区 | 精品一区二区三区在线播放视频| 日本a√在线观看| 轻轻草成人在线| 亚欧激情乱码久久久久久久久| 青青草国产成人av片免费| 少妇激情一区二区三区| 喷水一区二区三区| 天堂中文av在线| 国产一区二区视频在线| 无码人妻少妇色欲av一区二区| 国产成人av自拍| 天天躁日日躁狠狠躁av| wwwwww.欧美系列| av中文字幕免费观看| 国产日韩在线不卡| 国产极品美女在线| 一区二区三区蜜桃网| 日本中文字幕网| 91传媒视频在线播放| 一级片一区二区三区| 日韩一区二区三区四区| 西西人体44www大胆无码| 亚洲精品中文字幕av| 在线观看免费版| 欧美国产在线视频| 456亚洲精品成人影院| 国产日韩中文字幕| 给我免费播放日韩视频| 欧洲精品亚洲精品| 婷婷亚洲图片| 黄色免费福利视频| 美女视频免费一区| 日韩女优在线视频| 国产无一区二区| 青草草在线视频| 色婷婷精品久久二区二区蜜臂av| 亚洲天堂国产精品| 亚洲缚视频在线观看| 国产大片在线免费观看| 欧美精品在线免费| 欧美黑人一区| 亚洲伊人一本大道中文字幕| 亚洲v天堂v手机在线| 国产又大又长又粗又黄| 国产日韩1区| 天堂av.com| 26uuu色噜噜精品一区| 侵犯稚嫩小箩莉h文系列小说| 精品女厕一区二区三区| 97在线公开视频| 日韩精品在线视频美女| 久草资源在线| 国产成人精彩在线视频九色| 9l视频自拍九色9l视频成人| 色涩成人影视在线播放| 亚洲视频综合| 亚洲一区二区福利视频| 91蜜桃视频在线| 欧美卡一卡二卡三| 欧美日韩色一区| 深夜影院在线观看| 九九热r在线视频精品| 韩国精品视频在线观看| 另类小说综合网| 亚洲福利国产| 国产一级免费大片| 日本一区二区成人| 国产一级片毛片| 亚洲国产精品系列| 秋霞在线午夜| 91免费人成网站在线观看18| 国产剧情一区| 日韩在线综合网| eeuss鲁片一区二区三区在线观看| 国产精品免费人成网站酒店| 欧美三片在线视频观看| 男人天堂综合| 欧美专区第一页| 欧美一级全黄| 蜜臀av无码一区二区三区| 国产乱码精品一区二区三区av| 91狠狠综合久久久久久| 欧美自拍偷拍午夜视频| 婷婷国产在线| 亚洲2020天天堂在线观看| 白白在线精品| 欧美一级免费播放| 成熟亚洲日本毛茸茸凸凹| 欧美日韩人妻精品一区二区三区| 欧美日韩精品三区| 秋霞成人影院| 91精品美女在线| 久久人人88| 日本美女视频一区| 亚洲欧美综合在线精品| 国产一区二区三区中文字幕| 久久精品久久久久久| 9999在线精品视频| 福利在线小视频| 国产一区二区在线看| 在线观看美女av| 日韩一区二区三区视频在线 | 热久久美女精品天天吊色| 少妇一区二区三区| 国模吧无码一区二区三区| 久久久综合网站| 成人黄色三级视频| 色午夜这里只有精品| 中文成人在线| 一本大道东京热无码aⅴ| 国产成人免费在线| 五月婷婷激情网| 亚洲视频免费一区| 成人国产精品| 9色视频在线观看| www.亚洲激情.com| 久久亚洲精品石原莉奈| 在线观看欧美www| 国产一区二区三区国产精品| 乱熟女高潮一区二区在线| 99国内精品久久| 波多野结衣高清视频| 久久精品人人做人人爽| 午夜视频在线观看精品中文| 亚洲 欧美 日韩 国产综合 在线| 久久蜜桃av一区精品变态类天堂 | 成人免费看片98| 国产视频精品久久久| 成人黄页网站视频| 伊人再见免费在线观看高清版| 北条麻妃一区二区三区| 在线免费黄色av| 啊v视频在线一区二区三区 | 亚洲国产精品久久久久婷婷老年| 久久精品国产免费| 久久97人妻无码一区二区三区| 日韩电影中文字幕| 欧美爱爱视频| 色欲色香天天天综合网www| 国产清纯美女被跳蛋高潮一区二区久久w| 一区二区视频免费观看| 欧美激情亚洲视频| 国产欧美一区| 丰满少妇一区二区三区专区| 91福利区一区二区三区| 黄色大片在线| 亚洲精品在线视频观看| 不卡的av在线播放| 国产精品亚洲欧美在线播放| 69影院欧美专区视频| 欧美激情国产在线| 极品粉嫩小仙女高潮喷水久久 | 亚洲第一av色| 在线免费av电影| 欧美极品色图| 国产v日产∨综合v精品视频| 免费在线不卡av| 91成人国产在线观看| 91精品国产成人观看|