⑴ call和apply方法的區別
call方法:語法:call(thisObj,Object)定義:調用一個對象的一個方法,以另一個對象替換當前對象。說明:call方法可以用來代替另一個對象調用一個方法。call方法可將一個函數的對象上下文從初始的上下文改變為由thisObj指定的新對象。
⑵ call 和 apply 的區別
JavaScript中的每一個function對象都會有call和apply方法
定義:
apply:調用一個對象的一個方法,用另一個對象替換當前對象。例如:B.apply(A, arguments);即A對象應用B對象的方法。
call:調用一個對象的一個方法,用另一個對象替換當前對象。例如:B.call(A, args1,args2);即A對象調用B對象的方法
從定義中可以看出,call和apply都是調用一個對象的一個方法,用另一個對象替換當前對象。而不同之處在於傳遞的參數,apply最多隻能有兩個參數——新this對象和一個數組argArray,如果arg不是數組則會報錯TypeError;
call則可以傳遞多個參數,第一個參數和apply一樣,是用來替換的對象,後邊是參數列表。
⑶ 前端為什麼用call方法
因為是公用的方法。
js中call是調用一個對象的一個方法,以另一個對象替換當前對象。call方法是Function類原型上的一個公共方法,所以要用這個。
⑷ Javascript中call和apply的區別與詳解
call()方法
用於操作this的函數方法是call(),它可以指定的this值和參數來執行函數。call()的第一個參數指定了函數執行時this的值,其後的所有參數都是需要被傳入函數的參數。
apply()方法
apply()是你可以用來操作this的第二個函數方法。apply()的工作方式和call()完全一樣,但它只能接受兩個參數: this 的值和一個數組或者類似數組的對象,內含需要被傳入函數的參數(也就是說你可以把arguments對象作為apply()的第二個參數)。你不需要像使用call()那樣一個個指定參數,而是可以輕松傳遞整個數組給apply()。除此之外,call()和apply()表現得完全一樣。
bind()方法
改變this的第三個函數方法是bind()。ECMAScript 5中新加的這個方法和之前那兩個頗有不同。按慣例,bind()的第一個參數是要傳給新函數的this的值。其他所有參數代表需要被永久設置在新函數中的命名參數。你可以在之後繼續設置任何非永久參數。
資料來源:
HTML5學堂
決勝前端
⑸ CALL在編程里如何解釋
是匯編語言吧!
call指令是調用子程序,後面緊跟的應該是子程序名或者過程名。
如:call di 和 call dword ptr [di]
call di是說所調用的子程序的入口偏移地址=di的值,段地址CS不變(段內調用);
call dword ptr [di]是說所調用的子程序的入口的「偏移地址」存放在內存單元DS:{di]中,而其「段地址」則存在DS:[di+2]中,這是段間調用。
⑹ call和apply的區別 阮一峰
call方法:
語法:call(thisObj,Object)
定義:調用一個對象的一個方法,以另一個對象替換當前對象。
說明:
call 方法可以用來代替另一個對象調用一個方法。call 方法可將一個函數的對象上下文從初始的上下文改變為由 thisObj 指定的新對象。
如果沒有提供 thisObj 參數,那麼 Global 對象被用作 thisObj。
apply方法:
語法:apply(thisObj,[argArray])
定義:應用某一對象的一個方法,用另一個對象替換當前對象。
說明:
如果 argArray 不是一個有效的數組或者不是 arguments 對象,那麼將導致一個 TypeError。
如果沒有提供 argArray 和 thisObj 任何一個參數,那麼 Global 對象將被用作 thisObj, 並且無法被傳遞任何參數。
⑺ 關於javascript中apply和call方法的區別
apply: 以指定的this值和參數(參數以數組形式傳入)調用某個函數
call: 以指定的this值和若干個指定的參數值調用某個函數或方法
call方法的作用和apply方法類似,只有一個區別,就是call接受的是若干個參數的列表,而apply接受的是一個包含多個參數的數組。
詳細說明、示例參考下面的鏈接:
apply:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Function/apply
call :
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Function/call
⑻ 在JS中,call()方法和apply()方法到底該怎麼應用
1.apply與call是更改對象的內部指針,即改變對象的this指向的內容;
2.call與apply的第一個參數都是要傳入給當前對象的對象,及函數內部的this,後面的參數都是傳遞給當前對象的參數。
⑼ 前端為什麼用call方法
因為CALL指令用於調用其他函數。
可以調用函數,可通過call()方法來調用demo.call()可以直接輸出內容。all的功能就是調用子程序。call指令是計算機轉移到調用的子程序。
call()方法內的第一個參數代表this指向的函數,後面緊跟的參數為函數原有的形參demo.call(demo1,10,20)。
⑽ 對於javascript 中的call函數的理解問題
標准解釋:call方法是將一個對象的方法在另一個對象的上下文環境中執行。
詳細解釋:你的例子中,myFun.call(myObject, 13, 3, 95)執行時是這樣的:
1. 調用myFun函數
2. 將13,3,95三個參數傳遞給它(你的myFun方法中沒有處理這些參數的代碼,所以傳了也沒有用)
3. 將myFun函數中的所有this用myObject代替(同樣,你的myFun函數中沒有使用this,所以執行結果和直接調用myFun()是一樣的)
修改一下你的例子,幫助你理解:
function myFun(p1, p2, p3)
{
this.para1 = p1;
this.para2 = p2;
this.para3 = p3;
}
var myObject = new Object();
alert(myObject.para1) //顯示undefined
myFun.call(myObject,13,3,95); /*執行的時候,myFun方法中的this全部用myObject對象代替,所以在這個例子中,執行myFun方法和直接寫下面的語句效果是一樣的:
myObject.para1 = 13;
myObject.para2 = 3;
myObject.para3 = 95;
*/
alert(myObject.para1) //顯示13