精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

本田岬高潮一区二区三区| 婷婷综合五月| 欧美性生活大片视频| 在线播放精品一区二区三区 | 999视频在线免费观看| 精品视频站长推荐| 日韩不卡在线| 亚洲成人免费视频| 中文字幕av日韩精品| 亚洲欧美另类在线视频| 一个色综合网| 欧美日韩国产小视频在线观看| 三年中文高清在线观看第6集| 少妇人妻一区二区| 伊人狠狠色j香婷婷综合| 亚洲欧美日韩中文在线制服| 国产大片一区二区三区| 欧美片第一页| 亚洲成人午夜电影| 国产又爽又黄ai换脸| 黄色av网址在线免费观看| 国产黄色精品网站| 国产免费成人av| 69亚洲精品久久久蜜桃小说| 国产精品hd| 日日噜噜噜夜夜爽亚洲精品| 日韩av卡一卡二| 美女网站在线看| 亚洲综合偷拍欧美一区色| 亚洲日本欧美在线| 国产亚洲依依| 国产精品无码2021在线观看| 69堂免费精品视频在线播放| 亚洲一级二级在线| 中文字幕黄色大片| 91短视频版在线观看www免费| av动漫一区二区| 97伦理在线四区| 国产毛片在线视频| 久久机这里只有精品| 国产精品av电影| 9i精品福利一区二区三区| 亚洲精品影视| 久久人人看视频| 国产真实乱偷精品视频| 欧美韩国日本| 91福利资源站| 国产日韩成人内射视频| 亚洲承认视频| 欧美日韩在线视频一区| 国产成人a亚洲精v品无码| 日本在线高清| 色琪琪一区二区三区亚洲区| 男人的天堂日韩| 精品肉辣文txt下载| 欧美日韩亚洲成人| 日本黄网站免费| 五月天婷婷在线视频| 久久久亚洲午夜电影| 久久精品理论片| 久久国产一区二区三区| 中文字幕乱码av| 亚洲国产精品日韩专区av有中文| 北条麻妃一区二区三区中文字幕| 国产精品国产三级国产传播| 久久久久久久久丰满| 久久综合亚洲社区| 国产亚洲欧美精品久久久久久| 国产专区一区| 欧美夜福利tv在线| 国产乱码在线观看| 欧美精品97| 欧美国产日韩精品| 2019男人天堂| 99精品一区| 色综合天天综合网国产成人网| 国产一级免费av| 销魂美女一区二区三区视频在线| 国产精品老牛影院在线观看| 国产绿帽一区二区三区| 粉嫩13p一区二区三区| 久久99久久精品国产| 国产精品女人久久久| 国产a精品视频| 国产精品一国产精品最新章节| 亚洲欧美日韩免费| 国产婷婷一区二区| 永久免费精品视频网站| 日本片在线观看| 粉嫩老牛aⅴ一区二区三区| 又色又爽又高潮免费视频国产| av成人在线网站| 亚洲福利影片在线| 99中文字幕在线| 亚洲精品观看| 亚洲欧美国产另类| 日本a级片视频| 久久激情一区| 国产91aaa| 97在线观看免费观看高清 | 四虎884aa成人精品| 激情偷拍久久| 国产日韩在线视频| 亚洲av成人精品日韩在线播放| 国产精品第五页| www.玖玖玖| 美国十次综合久久| 7777精品伊人久久久大香线蕉最新版| 久久久午夜精品福利内容| 色97色成人| 欧美一级免费看| 性做久久久久久久| 国产精品888| 日产精品一线二线三线芒果| 国产嫩草在线视频| 欧美高清精品3d| 能免费看av的网站| 亚洲国产精品一区制服丝袜| 91久久久久久久久久久久久| 国产一区二区三区四区视频 | 交100部在线观看| 日韩欧美在线123| 99热这里只有精品2| 国产一区二区电影在线观看| 国内精品免费午夜毛片| 国产xxxxxx| 成人综合在线网站| 亚洲精品偷拍视频| 精品女同一区二区三区在线观看| 精品无人区乱码1区2区3区在线| 久久中文字幕无码| 国产精品一二三四| 黄色免费高清视频| 亚洲精品成a人ⅴ香蕉片| 一区二区三区国产视频| 丁香六月婷婷综合| 日韩精品一级二级| 久久五月天婷婷| 九色porny丨入口在线| 精品剧情v国产在线观看在线| 国产草草浮力影院| 欧美日韩亚洲一区二区三区在线| 国产一区二区在线免费| a天堂中文在线| 欧美视频一区在线观看| 精品人妻中文无码av在线| 日韩二区三区四区| 日日夜夜精品网站| 在线三级中文| 日韩欧美专区在线| 精品一区在线视频| jizz一区二区| 日韩少妇内射免费播放18禁裸乳| 色婷婷综合久久久久久| 日韩在线免费视频观看| 中文字幕欧美在线观看| 最近中文字幕一区二区三区| 日韩av高清在线看片| 久久超级碰碰| 欧美一二三视频| 成人在线视频成人| 欧美高清视频一二三区| 国产女人被狂躁到高潮小说| 成人激情午夜影院| 男人操女人免费软件| 日韩免费视频| 97人人干人人| 中文字幕乱码在线播放| 国产亚洲精品一区二区| 97超碰中文字幕| 午夜视频在线观看一区二区| 日韩在线免费观看av| 精品无人码麻豆乱码1区2区| 久久这里只有精品8| 在线视频亚洲专区| 成人有码视频在线播放| 高清电影在线免费观看| 亚洲欧洲黄色网| 国产又大又黄的视频| 亚洲国产精品一区二区www在线| 国产精品久久久免费观看| 婷婷亚洲最大| 国产亚洲欧美另类一区二区三区| 97久久香蕉国产线看观看| 久久精品小视频| 天堂8在线视频| 欧美日韩中文精品| 国产精选第一页| 中文幕一区二区三区久久蜜桃| 黄色一级在线视频| 精品国产一级| 5252色成人免费视频| 日韩av中文| 亚洲精品福利视频| 国产精品探花视频| 欧美日韩国产一区在线| 蜜桃av.com| 91蜜桃在线免费视频| 超碰人人草人人| 国产精品日本| 一本色道久久88亚洲精品综合| 网红女主播少妇精品视频| 亚洲bt欧美bt日本bt| 老司机午夜在线视频| 日韩电影大全免费观看2023年上| 亚洲天堂自拍偷拍| 色综合欧美在线| 日本少妇色视频| 国产真实精品久久二三区| 免费日韩视频在线观看| 国产精品v日韩精品v欧美精品网站| 欧美日韩一区二区三区在线观看免| 国产高清自产拍av在线| 日韩中文字幕精品视频| 免费在线黄色影片| 精品国产免费一区二区三区四区| 一级黄色片视频| 一本大道综合伊人精品热热| 不卡的免费av| 亚洲精品国产无套在线观| 91社区视频在线观看| 久久久国产综合精品女国产盗摄| 国产国语老龄妇女a片| 国产乱人伦偷精品视频免下载 | 久久r这里只有精品| 欧美国产乱子伦| 麻豆精品免费视频| 91女神在线视频| www.88av| 成人不卡免费av| 亚洲少妇一区二区三区| 国产v综合v亚洲欧| 日本黄色www| 国产高清视频一区| 先锋资源在线视频| 国产麻豆精品一区二区| 日韩a一级欧美一级| 国产自产v一区二区三区c| 欧美日韩一区二区三区69堂| 蜜臀av在线播放一区二区三区| 亚洲不卡中文字幕| 国产成人精品亚洲线观看| 99久久国产免费免费| 日本一区二区三区视频在线看| 亚洲字幕一区二区| 日韩视频在线直播| 丁香五月网久久综合| 岛国成人av| 黄色小网站91| 亚洲成aⅴ人片久久青草影院| 蜜桃网站成人| 国产真实有声精品录音| 水蜜桃一区二区| 国产精品久久久久久久免费观看 | 欧美日韩中文国产| 国产又粗又猛又爽又黄的| 91麻豆精品国产91久久久| 国产乱叫456在线| 日韩久久久久久| 狠狠躁日日躁夜夜躁av| 日韩av在线免费观看| 欧美色视频免费| 中文字幕亚洲在线| 国产盗摄在线观看| 日韩电影网在线| 青青草观看免费视频在线| 国产亚洲欧洲高清| 精品麻豆一区二区三区| 欧美国产乱视频| 香蕉伊大人中文在线观看| 国产精品久久久久999| 成人永久在线| 国产精品91久久久久久| 99热播精品免费| 91久久久一线二线三线品牌| 欧美丝袜美腿| 一区二区精品视频| 亚洲欧洲一区| 欧美成人黄色网址| 成人毛片老司机大片| 69视频在线观看免费| 国产日韩欧美高清免费| 91av视频在线| 国产精品论坛| 国产精品你懂得| 国产精品1luya在线播放| 日韩免费毛片| 亚洲视频碰碰| 男操女免费网站| 成人一级黄色片| 手机av在线不卡| 亚洲国产成人av好男人在线观看| wwwwww在线观看| 亚洲国产精品久久久久秋霞不卡| www 日韩| 91地址最新发布| 日韩欧洲国产| 午夜老司机精品| 9色精品在线| 91香蕉视频免费看| 欧美国产日韩精品免费观看| 手机在线看片日韩| 最新国产成人在线观看| aaa在线视频| 亚洲精品一区二区三区香蕉 | 久久精品成人动漫| 一个人www视频在线免费观看| 亚洲在线免费观看| 成人直播大秀| 国产精品宾馆在线精品酒店| 国产传媒日韩欧美成人| 97精品在线播放| 一本色道久久综合亚洲91| 狠狠躁日日躁夜夜躁av| 不卡中文字幕av| 日本a人精品| 日本在线播放不卡| 亚洲一区二区三区高清| 国产人妖在线观看| 国产成人亚洲综合色影视| 美国黑人一级大黄| 91福利精品视频| 日韩二区三区| 97超碰色婷婷| 精品五月天堂| 亚洲 欧美 综合 另类 中字| 国产老肥熟一区二区三区| 一级性生活免费视频| 欧美性猛片xxxx免费看久爱| 日本一区高清| 欧美中文字幕视频| 亚洲伊人春色| 国产特级黄色大片| caoporm超碰国产精品| 国产精品成人网站| 亚洲精品一区二区精华| 成人超碰在线| 国产乱码精品一区二区三区日韩精品| 欧美在线不卡| 精品人妻二区中文字幕| 一区二区久久久| 亚洲第一成年人网站| 欧美激情三级免费| gogo久久日韩裸体艺术| 国产www免费| www.日韩大片| 欧美h在线观看| 亚洲视频axxx| 男女啪啪999亚洲精品| 一区二区精品国产| 国产精品18久久久久久久久久久久 | 欧美成人免费全部观看天天性色| 国产精品一区三区在线观看| av一区二区三区免费观看| 成人爽a毛片一区二区免费| 日韩乱码人妻无码中文字幕| 日韩电影中文字幕在线| 亚洲精品一级二级| 在线看视频不卡| 国产成人日日夜夜| 日韩三级小视频| 亚洲午夜久久久久久久| 亚洲伦理一区二区| 久久综合久久网| 久久一区二区视频| 亚洲天堂网视频| 欧美寡妇偷汉性猛交| 亚州综合一区| www.久久91| 亚洲午夜久久久久久久久久久| 青青青草原在线| 91精品国产综合久久久久久久久 | 性网爆门事件集合av| 欧美在线观看日本一区| 91亚洲国产高清| 扒开伸进免费视频| 欧美午夜寂寞影院| 欧美人与性动交α欧美精品图片| 免费国产一区二区| 狠狠色丁香九九婷婷综合五月| 日韩污视频在线观看| 中文一区二区视频| 成人av动漫| 性生活免费在线观看| 亚洲一区二区中文在线| 成人在线免费看| 国产一区国产精品| 国精品**一区二区三区在线蜜桃| 免费在线不卡视频| 久久久精品欧美| 久草成人在线| 精品久久久久久无码人妻| 欧美性受xxxx黑人xyx性爽| 男插女视频久久久| 一道精品一区二区三区| 97se亚洲国产综合自在线不卡 | 免费国产成人看片在线| 久久久久久久久久美女| 丁香花免费高清完整在线播放| 国产精品普通话|