在jquery中,apply()方法用來改變this指向,使用另一個物件取代目前對象,是應用某一物件的方法,語法為「apply(thisobj,[argarray])」;參數argarray表示的是以陣列的形式進行傳遞。
本教學操作環境:windows10系統、jquery3.2.1版本、Dell G3電腦。
call()方法和apply()方法的作用相同:改變this指向。
具體語法:
apply(thisobj,[argarray])
apply()方法與call()方法作用是差不多的,區別在於參數的傳遞形式上,apply()方法只有兩個參數,thisobj參數與call()方法中的用法相同,第二個參數argarray是以數組的形式傳遞,這一點與call()不同,call()除thisobj外,可以傳遞多個單獨的參數。
兩個方法在參數的組織形式上稍有差別,功能差不多。
call方法的呼叫物件一般為某一個函數,函數本身也是一種物件。
第一個參數thisobj是函數物件新的上下文,根據thisobj物件的不同,函數的執行上下文可能會不一樣,如果不傳thisobj參數,預設的上下文是全域window.
範例如下:
例如:
<script> var a = 1, b = 1; function add(a, b) { alert(this.a + this.b); } var s = {}; s.a = 5; s.b = 1; add.call(); //alert(2) add.call(s, 3, 1); //alert(6) </script>
add.call()不傳入thisobj參數時,function add中this指向window,輸出結果為2.
add.call(s,3,1),thisobj參數傳入s時,function add中this指向s,所以輸出結果為6.
function add(c, d){ return this.a + this.b + c + d; } var o = {a:1, b:3}; add.call(o, 5, 7); // 1 + 3 + 5 + 7 = 16 this指向o add.apply(o, [10, 20]); // 1 + 3 + 10 + 20 = 34 this指向o
相關影片教學推薦:jQuery影片教學
以上是jquery中apply()方法怎麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!