亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB開發 > 正文

深入理解javascript原型和閉包(10)——this

2024-04-27 15:16:44
字體:
來源:轉載
供稿:網友
原文地址:http://www.cnblogs.com/wangfupeng1988/p/3988422.html

接著上一節講的話,應該輪到“執行上下文?!绷耍沁@里不得不插入一節,把this說一下。因為this很重要,js的面試題如果不出幾個與this有關的,那出題者都不合格。

 

其實,this的取值,分四種情況。我們來挨個看一下。

在此再強調一遍一個非常重要的知識點:在函數中this到底取何值,是在函數真正被調用執行的時候確定的,函數定義的時候確定不了。因為this的取值是執行上下文環境的一部分,每次調用函數,都會產生一個新的執行上下文環境。

 

情況1:構造函數

所謂構造函數就是用來new對象的函數。其實嚴格來說,所有的函數都可以new一個對象,但是有些函數的定義是為了new一個對象,而有些函數則不是。另外注意,構造函數的函數名第一個字母大寫(規則約定)。例如:Object、Array、Function等。

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

 

注意,以上僅限new Foo()的情況,即Foo函數作為構造函數的情況。如果直接調用Foo函數,而不是new Foo(),情況就大不一樣了。

這種情況下this是window,我們后文中會說到。

 

情況2:函數作為對象的一個屬性

如果函數作為對象的一個屬性時,并且作為對象的一個屬性被調用時,函數中的this指向該對象。

以上代碼中,fn不僅作為一個對象的一個屬性,而且的確是作為對象的一個屬性被調用。結果this就是obj對象。

 

注意,如果fn函數不作為obj的一個屬性被調用,會是什么結果呢?

如上代碼,如果fn函數被賦值到了另一個變量中,并沒有作為obj的一個屬性被調用,那么this的值就是window,this.x為undefined。

 

情況3:函數用call或者apply調用

當一個函數被call和apply調用時,this的值就取傳入的對象的值。至于call和apply如何使用,不會的朋友可以去查查其他資料,本系列教程不做講解。

 

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

在全局環境下,this永遠是window,這個應該沒有非議。

 

普通函數在調用時,其中的this也都是window。

以上代碼很好理解。

不過下面的情況你需要注意一下:

函數f雖然是在obj.fn內部定義的,但是它仍然是一個普通的函數,this仍然指向window。

 

最后,既然提到了this,有必要把一個非常經典的案例介紹給大家,又是jQuery源碼的。

以上代碼是從jQuery中摘除來的部分代碼。jQuery.extend和jQuery.fn.extend都指向了同一個函數,但是當執行時,函數中的this是不一樣的。

執行jQuery.extend(…)時,this指向jQuery;執行jQuery.fn.extend(…)時,this指向jQuery.fn。

這樣就巧妙的將一段代碼同時共享給兩個功能使用,更加符合設計原則。

 

在構造函數的PRototype中,this代表著什么。

如上代碼,在Fn.prototype.getName函數中,this指向的是f1對象。因此可以通過this.name獲取f1.name的值。

其實,不僅僅是構造函數的prototype,即便是在整個原型鏈中,this代表的也都是當前對象的值。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲福利影片在线| 国产精品日韩在线| 欧美福利视频在线观看| 久久久国产一区二区| 色妞欧美日韩在线| 日韩精品在线视频| 国产精品视频资源| 亚洲综合在线小说| 国模私拍一区二区三区| 国产精品视频免费观看www| 国产精品自拍偷拍| 青青在线视频一区二区三区| 91国偷自产一区二区三区的观看方式| 最好看的2019年中文视频| 欧美精品一区二区三区国产精品| 久久视频在线免费观看| 91久久久在线| 在线观看免费高清视频97| 日韩小视频网址| 色樱桃影院亚洲精品影院| 亚洲综合在线中文字幕| 国产日韩在线观看av| 亚洲少妇中文在线| 午夜精品蜜臀一区二区三区免费| 国产精品揄拍一区二区| 秋霞午夜一区二区| 久久久综合av| 免费不卡欧美自拍视频| 菠萝蜜影院一区二区免费| 久久久久久国产精品| 久久人人爽人人爽人人片av高请| 欧美国产日韩一区二区在线观看| 精品一区二区三区电影| 国产日韩视频在线观看| 亚洲黄色成人网| 日韩国产欧美精品一区二区三区| 久久99精品久久久久久琪琪| 日产日韩在线亚洲欧美| 欧美亚洲国产视频| 国产精品免费一区| 精品久久久久久久久中文字幕| 久久久久久久久爱| 亚洲国产精品va在看黑人| 国产成人精品综合| 超薄丝袜一区二区| 久久久久久91香蕉国产| 成人444kkkk在线观看| 国产+人+亚洲| 欧美精品18videos性欧| 亚洲第一精品福利| 午夜精品三级视频福利| 九九热精品视频在线播放| 午夜精品在线观看| 综合网日日天干夜夜久久| 2023亚洲男人天堂| 琪琪第一精品导航| 国产成+人+综合+亚洲欧洲| 萌白酱国产一区二区| 国产视频在线观看一区二区| 欧美香蕉大胸在线视频观看| 国产精品∨欧美精品v日韩精品| 亚洲精品视频网上网址在线观看| 亚洲精品久久久久久下一站| 一本一本久久a久久精品综合小说| 亚州av一区二区| 亚洲综合中文字幕在线观看| 欧美性xxxx极品hd满灌| 成人国产亚洲精品a区天堂华泰| 日韩欧美在线中文字幕| 国产精品久久久久久久app| 国产精品久久久久久久久久ktv| 久久免费在线观看| 成人国产精品一区| 久久免费视频这里只有精品| 久久久噜久噜久久综合| 国产成人av网址| 精品国产91乱高清在线观看| 538国产精品视频一区二区| 亚洲性生活视频在线观看| 亚洲毛片在线观看.| 亚洲天堂成人在线| 成人乱人伦精品视频在线观看| 欧美日产国产成人免费图片| 欧美黑人巨大xxx极品| 精品欧美一区二区三区| 国产精品一区二区三区免费视频| 成人中文字幕+乱码+中文字幕| 成人啪啪免费看| 亚洲午夜久久久久久久| 大荫蒂欧美视频另类xxxx| 亚洲精品资源在线| 精品久久久一区二区| 日韩成人网免费视频| 久久成人亚洲精品| 国产精品老牛影院在线观看| 欧美色道久久88综合亚洲精品| 欧美刺激性大交免费视频| 国产玖玖精品视频| 国产日韩精品在线播放| 国产精品久久久久77777| 欧美裸体男粗大视频在线观看| 国产精品美女www| 国产精品中文字幕久久久| 全亚洲最色的网站在线观看| 亚洲片国产一区一级在线观看| 欧美一区二区大胆人体摄影专业网站| 91美女片黄在线观| 最近2019年中文视频免费在线观看| 日韩在线观看免费全集电视剧网站| 日韩精品在线视频观看| 成人免费视频a| 在线成人免费网站| 日韩欧美在线观看| 黑人精品xxx一区一二区| 成人福利视频网| 国产精品免费福利| 中文字幕免费国产精品| 日韩第一页在线| 色777狠狠综合秋免鲁丝| 国产精品久久久| 久久人人爽人人爽人人片av高请| 精品国产一区二区三区久久| 亚洲精品视频久久| 国产精品自产拍在线观看中文| 国产精品成人一区二区三区吃奶| 亚洲精品动漫久久久久| 午夜精品久久久久久久99热| 亚洲二区在线播放视频| 色综合久久中文字幕综合网小说| 国产精品成人aaaaa网站| 一夜七次郎国产精品亚洲| 日韩免费电影在线观看| 欧美激情xxxxx| 国产精品视频yy9099| 欧美极品在线播放| 亚洲精品www久久久久久广东| 亚洲中国色老太| 欧美在线中文字幕| 欧美在线性爱视频| 欧美激情一区二区久久久| 精品久久久久久中文字幕大豆网| 国产成人免费91av在线| 欧美日韩爱爱视频| 成人做爰www免费看视频网站| 亚洲精品在线观看www| 久久久久久久国产精品视频| 91干在线观看| 亚洲精品中文字幕有码专区| 欧美日韩美女视频| 不用播放器成人网| 日本视频久久久| 97精品视频在线| 欧美在线视频在线播放完整版免费观看| 91精品视频专区| 久久99国产精品自在自在app| 中文字幕在线视频日韩| 欧美疯狂做受xxxx高潮| 福利微拍一区二区| 国内精品久久久久| 欧美一区第一页| 2018国产精品视频| 欧美国产视频一区二区| 国产精品成人va在线观看| 久久天天躁狠狠躁老女人|