JS中this關鍵字
2020/11/12 12:17:28 閱讀:2646
發布者:2646
this關鍵字雖然會根據環境變化,但是它始終代表的是調用當前函數的那個對象。這就引出了JS中函數調用的問題。在JS中調用函數的模式可以分為4種: 方法調用模式、函數調用模式、構造器調用模式、apply調用模式。這些模式在如何初始化關鍵參數this上存在差異。
一、方法調用模式
當函數被保存為一個對象的屬性時,它就可稱為這個對象的方法。當一個方法被調用時,this被綁定到這個對象上。如果調用表達式包含一個提取屬性的動作(. 或 []),那么它被稱為方法調用。
二、函數調用模式
當一個函數并非一個對象的屬性時,那么它就是被當做函數來調用的。在此種模式下,this被綁定為全局對象,在瀏覽器環境下就是window對象。
三、構造函數模式
如果在一個函數前面加上new關鍵字來調用,那么就會創建一個連接到該函數的prototype成員的新對象,同時,this會被綁定到這個新對象上。這種情況下,這個函數就可以成為此對象的構造函數。
四、apply調用模式
在JS中,函數也是對象,所有函數對象都有兩個方法:apply和call,這兩個方法可以讓我們構建一個參數數組傳遞給調用函數,也允許我們改變this的值。