關於js中apply方法和call方法的理解

大體上說,apply方法和call方法的功能就是改變當前函數的this指向;

具體用法如下:

Function.call(obj[, param1[, param2[, [,...paramN]]]]);

 

Function.apply(obj[, argArray]);

可以看到,call和apply的區別主要是傳入的參數類型不同:

  • apply()方法接收兩個參數,一個是函數運行的作用域(this),另一個是參數數組。
  • call()方法不一定接受兩個參數,第一個參數也是函數運行的作用域(this),但是傳遞給函數的參數必須列舉出來。

 

備註:

一個關於在math.Max()和math.Min()函數中的應用:

因爲Math.max參數裏面不支持Math.max([param1,param2]),也就是數組,但是它支持Math.max(param1,param2,param3…),所以可以根據apply來解決:

var array = [1, 2, 3];
var max = Math.max.apply(null, array);
console.log(max);//3

Math.min同理

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章