日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

JavaScript中的this基本問題實例小結

瀏覽:195日期:2023-11-08 11:10:58

本文實例講述了JavaScript中的this基本問題.分享給大家供大家參考,具體如下:

在函數中 this 到底取何值,是在函數真正被調用執行的時候確定下來的,函數定義的時候確定不了。

執行上下文環境 :

**定義**:執行函數的時候,會產生一個上下文的對象,里面保存變量,函數聲明和this。

**作用**:用來保存本次運行時所需要的數據

當你在代碼中使用了 this,這個 this 的值就直接從執行的上下文中獲取了,而不會從作用域鏈中搜尋。

關于 this 的取值,大體上可以分為以下幾種情況:

情況一:全局 & 調用普通函數

在全局環境中,this 永遠指向 window。

console.log(this === window); //true

普通函數在調用時候(注意不是構造函數,前面不加 new),其中的 this 也是指向 window。

但是如果在嚴格模式下調用的話會報錯:

var x = 1;function first(){ console.log(this); // undefined console.log(this.x); // Uncaught TypeError: Cannot read property ’x’ of undefined}first();

情況二:構造函數

所謂的構造函數就是由一個函數 new 出來的對象,一般構造函數的函數名首字母大寫,例如像 Object,Function,Array 這些都屬于構造函數。

function First(){ this.x = 1; console.log(this); //First {x:1}}var first = new First();console.log(first.x); //1

上述代碼,如果函數作為構造函數使用,那么其中的 this 就代表它即將 new 出來的對象。

但是如果直接調用 First函數,而不是 new First(),那就變成情況1,這時候 First() 就變成普通函數。

function First(){ this.x =1; console.log(this); //Window}var first = First();console.log(first.x); //undefined

情況三:對象方法

如果函數作為對象的方法時,方法中的 this 指向該對象。

var obj = { x: 1, first: function () { console.log(this); //Object console.log(this.x); //1 }};obj.first();

注意:若是在對象方法中定義函數,那么情況就不同了。

var obj = { x: 1, first: function () { function second(){ console.log(this); //Window console.log(this.x); //undefined } second(); }}obj.first();

可以這么理解:函數 second雖然是在 obj.first 內部定義的,但它仍然屬于一個普通函數,this 仍指向 window。

在這里,如果想要調用上層作用域中的變量 obj.x,可以使用 self 緩存外部 this 變量。

var obj = { x:1, first: function () { var self = this; function second(){ console.log(self); //{x: 1} console.log(self.x); //1 } second(); }}obj.first();

如果 first 函數不作為對象方法被調用:

var obj = { x: 1, first: function () { console.log(this); //Window console.log(this.x); //undefined }};var fn = obj.first;fn();

obj.first 被賦值給一個全局變量,并沒有作為 obj 的一個屬性被調用,那么此時 this 的值是 window。

情況四:構造函數 prototype 屬性

function First(){ this.x = 1;}First.prototype.getX = function () { console.log(this); //First {x: 1, getX: function} console.log(this.x); //1}var first= new First();first.getX();

在 First.prototype.getX 函數中,this 指向的first 對象。不僅僅如此,即便是在整個原型鏈中,this 代表的也是當前對象的值。

情況五:函數用 call

var obj = { x:1}function first(){ console.log(this); //{x: 1} console.log(this.x); //1}first.call(obj);

當一個函數被 call調用時,this 的值就取傳入的對象的值。

來源:知乎

鏈接:https://zhuanlan.zhihu.com/p/25294187?utm_source=com.youdao.note&utm_medium=social

感興趣的朋友可以使用在線HTML/CSS/JavaScript前端代碼調試運行工具:http://tools.jb51.net/code/WebCodeRun測試上述代碼運行效果。

更多關于JavaScript相關內容還可查看本站專題:《javascript面向對象入門教程》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結》

希望本文所述對大家JavaScript程序設計有所幫助。

標簽: JavaScript
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
中文字幕在线看片| 精品国产精品国产偷麻豆 | 久久黄色影视| 日本成人一区二区| 首页国产欧美日韩丝袜| 日韩精品一区二区三区中文| 欧美日韩1区2区3区| 日韩一区二区三区免费视频| 日本欧美一区| 中文在线免费视频| 国精品一区二区三区| 黄色亚洲在线| 亚洲激情国产| 蜜臀精品一区二区三区在线观看| 最新亚洲一区| 日本麻豆一区二区三区视频| 欧美一区久久| 欧美国产偷国产精品三区| 欧美性感美女一区二区| 深夜日韩欧美| 久久精品资源| 亚洲综合欧美| 蜜桃久久久久| 9久re热视频在线精品| 国产亚洲高清视频| 欧美精品国产| 日韩在线二区| 99国产精品| 国产精品黄色| 六月婷婷一区| 天堂а√在线最新版中文在线| 亚洲天堂av资源在线观看| 亚洲黄色中文字幕| 国产精品婷婷| 久久精品系列| 日本电影久久久| 亚洲韩日在线| 蜜臀国产一区| 日韩av在线播放中文字幕| 欧美亚洲激情| 国产成人1区| 亚洲尤物av| 欧美亚洲国产激情| 麻豆精品蜜桃视频网站| 欧美特黄a级高清免费大片a级| 捆绑调教美女网站视频一区| 在线看片日韩| 欧美日韩色图| 欧美日韩在线网站| 欧美好骚综合网| 精品久久在线| 国产激情久久| 国产精品久久久久久久久久久久久久久 | 一区二区电影| 免费欧美日韩| 国产欧美在线| 羞羞答答国产精品www一本| 日韩成人精品一区| 国产欧美在线| 国产精品久久久久久久久久白浆| 麻豆国产精品视频| 美女在线视频一区| 欧美三区不卡| 国产精品对白| 91成人精品观看| 青草久久视频| 亚洲午夜免费| 伊人久久大香线蕉av超碰演员| 欧美片第1页| 色综合狠狠操| 成人精品国产亚洲| 日韩一区二区三免费高清在线观看 | 国产亚洲一区二区三区啪| 午夜电影一区| 视频一区日韩| 国产毛片精品| 国产精品久久久久蜜臀 | 欧美色图一区| 天堂成人免费av电影一区| 蜜桃视频在线观看一区| 欧美一级一区| 国产91在线精品| 久久成人亚洲| 亚洲有吗中文字幕| 不卡专区在线| 欧美交a欧美精品喷水| 国产精品**亚洲精品| 老司机免费视频一区二区| 国产一区二区三区黄网站| 精品丝袜在线| 亚洲精品激情| 日本不良网站在线观看| 亚洲精品九九| yellow在线观看网址| 久久大逼视频| 精品中文字幕一区二区三区| 在线成人直播| 国产精品乱战久久久| 在线综合欧美| 蜜臀久久99精品久久久画质超高清 | 国产综合精品| 日本欧美一区二区| 欧美久久亚洲| 国产亚洲一卡2卡3卡4卡新区| 国产综合色区在线观看| 日本在线视频一区二区| 美腿丝袜亚洲一区| 一区二区三区四区日韩| 日韩理论视频| 麻豆精品99| 亚洲va久久| 中国女人久久久| 久久不见久久见国语| 日韩免费精品| 国产麻豆综合| 日韩精品中文字幕第1页| 日韩有码av| 日韩中文字幕亚洲一区二区va在线| 日韩影院二区| 精品一级视频| 国产精品一区二区三区av麻| 久久午夜精品| 欧美国产91| 欧美日韩尤物久久| 久久婷婷激情| 国产精品2023| 久久精品免费看| 日韩精品免费视频人成| 丝袜亚洲另类欧美| 亚洲va中文在线播放免费| 你懂的国产精品| 国产精品最新自拍| 欧美精品影院| 91成人福利| 综合激情网...| 亚洲2区在线| 在线免费观看亚洲| 日韩二区三区在线观看| 日韩专区欧美专区| 日韩高清不卡一区| 欧美天堂一区二区| 久久不卡日韩美女| 一区二区电影在线观看| 日本va欧美va瓶| 国产成人精品999在线观看| 国产日韩电影| 亚洲一区成人| 国产精品大片| 精品一区二区三区免费看| 国产剧情一区| 成人日韩在线| 香蕉精品视频在线观看| 夜夜精品视频| 日韩超碰人人爽人人做人人添| 牛牛精品成人免费视频| 成人综合一区| 久久国产中文字幕| 亚洲经典在线| 日本精品在线播放| 精品久久久亚洲| 欧美一区三区| 国产精品美女久久久久久不卡| 精品国产精品国产偷麻豆| 亚洲制服少妇| 国内精品亚洲| 99久精品视频在线观看视频| 亚洲精品黄色| 久久久久久夜| 日本不卡一区二区三区| 国产黄色一区| 欧美专区一区二区三区| 粉嫩av一区二区三区四区五区 | 国产一区清纯| 亚洲欧美网站在线观看| 亚洲精品影视| 成人羞羞在线观看网站| 欧美亚洲免费| 日韩一级精品| 国产字幕视频一区二区| 亚州精品视频| 性欧美69xoxoxoxo| 国产精品国产三级国产在线观看| 尤物精品在线| 精品国产不卡一区二区| 老司机精品久久| 99久久99视频只有精品| 黄色欧美在线| 国产精品日本一区二区三区在线 | 日本久久精品| 亚洲美女91| 久久伦理在线| 精品国产美女a久久9999| 不卡一区2区| 日韩a一区二区| 国产美女久久| 亚洲午夜免费| 亚洲一二三区视频| 2023国产精品久久久精品双| 亚洲三级欧美| 91一区二区|