3 回答

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