在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 關于JS的apply方法

關于JS的apply方法

用apply方法模擬es6中...展開運算符,下面例子用來展開數組參數
function myFunction(x, y, z) { }
var args = [0, 1, 2];
myFunction.apply(null, args);

這里的apply是什么意思?apply不是動態(tài)改變this指向嗎?那這里的運用是怎么回事

回答
編輯回答
心悲涼
apply()方法接收兩個參數:一個是在其中運行函數的作用域,另一個是參數數組。其中,第二個參數可以是 Array 的實例,也可以是 arguments 對象。

題主的代碼實際相當于:

myFunction(0,1,2);//如果myFunction里有 this,用null 替代,當第一個參數,傳 null 或 undefined 時,將是 JS 執(zhí)行環(huán)境的全局變量,瀏覽器中是 window,其它環(huán)境(如node)則是 global 。

詳情參考:js apply()、call() 使用參考

2018年6月7日 06:37
編輯回答
半心人

展開運算符內部用的是迭代器,只要部署了迭代器的對象都能用展開運算符
第一參數是null表示調用函數時this指向全局變量,第二個參數就是一個數組,call的話參數是散開的
apply(null, args)相對于call(null, ...args)

2018年7月27日 10:10