bind实现js函数中的预设参数 bind(null, xxx)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/themagickeyjianan/article/details/88843741

背景: pomelo进行远程过程调用时,看到一种写法一直很 蒙蔽,简化下描述如下:

/**
 学习笔记:
 bind()的另一个最简单的用法是使一个函数拥有预设的初始参数。只要将这些参数(如果有的话)作为bind()的参数写在this后面。
 当绑定函数被调用时,这些参数会被插入到目标函数的参数列表的开始位置,传递给绑定函数的参数会跟在它们后面。
 */

function addArguments(arg1, arg2) {
    return arg1 + arg2
}

var addThirtySeven = addArguments.bind(null, 37);

var result = addThirtySeven(5);

console.log(result);

result = addThirtySeven(5, 10);  // 注意这个,其实输出42,第二个10被丢弃了

console.log(result);

/*
42
42
 */

总结:

现在才明白,是为了让第一个参数强制传递指定的参数,如session信息。

参考:

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Function/bind

猜你喜欢

转载自blog.csdn.net/themagickeyjianan/article/details/88843741