什么是javascript call方法?
在javascript中,每個函數都有兩個特殊的方法,call()和apply()。這兩個方法可以讓你在一個對象的上下文中調用函數。
具體來說,call()方法作用是調用一個方法,以及指定方法的this值和方法參數。使用call(),你可以指定函數執行所在的上下文,意味著可以在不同的對象上調用同一個函數,同時改變this指向。
例如:
var obj1 = {a: 10}; var obj2 = {a: 20}; function foo() { console.log(this.a); } foo.call(obj1); // 10 foo.call(obj2); // 20
當前代碼中,我們定義了兩個對象obj1和obj2,還有一個函數foo()。通過調用call()方法,我們讓函數foo()在不同的對象上執行,同時改變了this指針,使其指向調用者(即obj1和obj2)。
此外,我們還可以向函數傳入參數:
function add(a, b) { return this.a + a + b; } var obj = {a: 10}; console.log(add.call(obj, 1, 2)); // 13
這里,我們定義了一個add()函數,它返回this.a + a + b的值。然后,我們創建了一個對象obj,并在調用add()時將它的上下文指定為obj,并將函數參數傳入,最終得到運行結果13。
總結來說,javascript中的call()方法可以讓我們改變函數的上下文,并傳入函數所需的參數。借助call(),我們可以將一個函數用作其他對象的方法。