js bind学习

bind的基本用法,有意思的是当不进行第二次bind的时候,后面的操作会影响data的值,是数组引用的传递。当第二次bind后,会新建arr的作用域,新建的arr就没有问题了。

reduce的初始值如果不给,会从下标1的值开始循环。

function retArr(arr, val, val2){
arr.push(val+val2);
return arr;
}
var pushVal = retArr.bind(null, [-1]);
var data = [1,2,3].reduce(
(p,c)=>{
return pushVal(c,c);
}, 0
);
pushVal = retArr.bind(null, [-1]);
var data2 = [7,8,9].reduce(
(p,c)=>{
return pushVal(c,c);
}, 0
);
pushVal(0,0);
console.log(data);
console.log(data2);

posted @ 2023-06-29 17:58  夏几把狂舞  阅读(21)  评论(0)    收藏  举报