此篇文章講解目錄:
純粹的函數調用
作為對象方法的調用
作為構造函數調用
apply調用
純粹的函數調用
這是函數的最通常用法,屬於全局性調用,因此this就代表全局對象Global。
為了證明,this代表的是全局對象,我們在這裡對上述代碼進行一下修改
作為對象方法的調用
函數還可以作為某個對象的方法調用,這時this就指這個上級對象。
此時的this指向的就是調用時的o對象
作為構造函數調用
所謂構造函數,就是通過這個函數生成一個新對象(object)。這時,this就指這個新對象。
為了表明這時的this不是代表全局對象,和第一個this並不相同,我們對上面的代碼在進行一下修改:
apply調用
apply()是函數對象的一個方法,它的作用是改變函數的調用對象,它的第一個參數就表示改變後的調用這個函數的對象。因此,this指的就是這第一個參數。
apply()的參數為空時,默認調用全局對象。因此,這時的運行結果為0,證明this指的是全局對象。
所以第一個o.m.apply()的結果指向了全局對象,輸出0
當改成o.m.apply(o)之後,this指向了o對象,所以結果為1
大家好接下來我們會邀請前端架構師以連載的方式,通過30天的實戰系統講解JavaScript的專業知識,歡迎大家關注頭條號“互聯網IT信息”。
閱讀更多 互聯網IT信息 的文章
關鍵字: JavaScript 調用 純粹