Javascript “什么是”呢;这";在React组件中绑定事件回调函数时引用;空";论点

Javascript “什么是”呢;这";在React组件中绑定事件回调函数时引用;空";论点,javascript,reactjs,bind,dom-events,Javascript,Reactjs,Bind,Dom Events,在React Presentation组件内的按钮单击事件回调函数中,明确地绑定到null: <button onClick={_this.props.toggleActive.bind(null, user.id)}>Toggle Active</button> 我不明白为什么这个例子在这个应该等于null或者在非严格模式下,全局窗口对象时有效。有人能告诉我为什么这个例子是有效的吗 可以找到相应的代码笔。切换激活 这里您是将方法绑定到null,而不是实例。因此您可以

在React Presentation组件内的按钮单击事件回调函数中,明确地绑定到
null

<button onClick={_this.props.toggleActive.bind(null, user.id)}>Toggle Active</button>
我不明白为什么这个例子在
这个
应该等于
null
或者在非严格模式下,全局
窗口
对象时有效。有人能告诉我为什么这个例子是有效的吗

可以找到相应的代码笔。

切换激活
这里您是将方法绑定到
null
,而不是实例。因此您可以 无法在方法中访问
,因此
将不起作用


我之前错了,不理解这个问题。请看以下代码:-

function a(){
    this.x = 5;
    this.y = function(){
        console.log(this.x)
    }
}
var x = 20;
var c = new a();
var d = c.y.bind(null);
d(); // prints 20 and not null or undefined
当null作为绑定函数中的上下文传递时,该函数将保留其原始上下文,即此处的全局范围(定义函数d的上下文)。但是,如果在绑定函数中传递了某些上下文,则该函数将打印该上下文的“x”属性

类似地,当传入null时

<button onClick={_this.props.toggleActive.bind(null, user.id)}>Toggle Active</button>
切换激活状态

触发时,toggleActive函数中的上下文是定义它的上下文,即UserListContainer的上下文。因此,它能够访问其状态

我不清楚,但从我的到期日来看,如果将null作为“context”参数传递,它将被忽略。这正是我所期望的,但正如我在原始问题中所述,它确实有效,这让我很惊讶。我的问题是为什么它会起作用。我认为应该失败。谢谢你的澄清。您是否有任何引用表明绑定忽略了
null
参数?例如,MDN文档根本没有提到它。
function a(){
    this.x = 5;
    this.y = function(){
        console.log(this.x)
    }
}
var x = 20;
var c = new a();
var d = c.y.bind(null);
d(); // prints 20 and not null or undefined
<button onClick={_this.props.toggleActive.bind(null, user.id)}>Toggle Active</button>