繁体   English   中英

正确绑定到 Javascript 函数参数

[英]Correctly bind to Javascript function parameter

我得到了一个接收 2 个参数的方法:

function func(param1, param2){...

我有一个 React 组件,它接收一个函数作为参数,它有关于第二个参数的信息,我想在这种情况下将第一个参数设置为常量。

我正在做的是:

let myFuncToPass = func.bind("const value", null);
.
.
.
<ComponentName funcParam = { (res) => myFuncToPass(res) } 
.

我期待当回调被调用时,参数将被调用,“const value”作为第一个参数, res作为第二个参数。 发生的情况是 res 被接收到第二个参数,但第一个是 null 而不是“const value”

我在这里做错了什么?

我想你想这样做:

let myFuncToPass = func.bind(this, "const value");

[编辑] 第一个参数不一定是this ,它完全取决于您的用例——如果func从不this内部使用它,它可能根本不重要,或者您可能更愿意传入null —— 你需要自己思考这个问题

当调用结果函数时,第一个参数绑定this意味着什么,第二个参数定义传递给函数的第一个参数

[编辑]

只需将其作为实验即可:

function x() {
  console.log(this);
  console.log(arguments);
}

x();

x.bind({a:2}, "first argument")("second argument");

查看文档: https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_objects/Function/bind

绑定函数的第一个参数是this

要使用部分应用程序,您应该使用 babel 或 Ramdajs 之类的函数库或这样编写。

func.bind('irrelevant', 'const value')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM