3 回答

TA貢獻2036條經(jīng)驗 獲得超8個贊
https://segmentfault.com/a/11...
看函數(shù)的四種調(diào)用模式。
函數(shù)的四種調(diào)用模式
函數(shù)模式
特征:就是一個簡單的函數(shù)調(diào)用,函數(shù)名前面沒有任何的引導(dǎo)內(nèi)容
this在函數(shù)模式中的含義: this在函數(shù)中表示全局對象,在瀏覽器中是window對象
方法模式
特征: 方法一定是依附于一個對象, 將函數(shù)賦值給對象的一個屬性, 那么就成為了方法.
this在方法模式調(diào)用中的含義:表示函數(shù)所依附的這個對象
構(gòu)造器調(diào)用模式
特征:使用 new 關(guān)鍵字, 來引導(dǎo)構(gòu)造函數(shù).
由于構(gòu)造函數(shù)只是給 this 添加成員. 沒有做其他事情. 而方法也可以完成這個操作, 就 this 而言, 構(gòu)造函數(shù)與方法沒有本質(zhì)區(qū)別.
構(gòu)造函數(shù)中發(fā)this與方法中一樣, 表示對象, 但是構(gòu)造函數(shù)中的對象是剛剛創(chuàng)建出來的對象
ps:補充關(guān)于構(gòu)造函數(shù)中return關(guān)鍵字的補充說明
構(gòu)造函數(shù)中不需要return, 就會默認的return this
如果手動的添加return, 就相當于 return this
如果手動的添加return 基本類型; 無效, 還是保留原來 返回this
如果手動添加return null; 或return undefiend, 無效
如果手動添加return 對象類型; 那么原來創(chuàng)建的this就會被丟掉, 返回的是 return后面的對象
上下文調(diào)用模式
特征:上下文(Context),就是函數(shù)調(diào)用所處的環(huán)境。上下文調(diào)用,也就是自定義設(shè)置this的含義。
常見的就是通過call 、apply和bind調(diào)用
添加回答
舉報