fn.call()、fn.apply()区别

2017-02-21  本文已影响633人  紫诺_qiu
obj.call(thisObj,arg1,arg2,...);
obj.apply(thisObj,[arg1,arg2,...]);
var array = [1,2,3];
var fn = array.forEach;
fn(item => console.log(item));

fn.call(array,item => console.log(item));      //1 2 3
fn.apply(array,[item => console.log(item)]);  // 1 2 3

bind()方法会创建一个新函数,当这个新函数被调用时,它的this值是传递给bind()的第一个参数,它的参数是bind()的其他参数和其原本的参数。
语法如下:

fn.bind(fn,arg1,arg2,...);
fn = _.bind(fn,array)    或
var _fn = fn.bind(array,item => console.log(item));

_fn.call();
_fn.apply();
fn(item => console.log(item));      //三者输出结果相同,均为 1 2 3
上一篇下一篇

猜你喜欢

热点阅读