首页 > 解决方案 > Javascript用自身的绑定版本替换函数是否不好

问题描述

我有一个反应组件,它必须将一个方法传递给它的孩子,以便他们可以修改状态。所以我创建了一个允许这样做的函数。我知道我应该将父组件绑定到this函数的参数,以便子组件可以成功修改状态。我想这样做的原因很愚蠢:我只是不知道绑定版本的名称¯\_(ツ)_/¯。所以想要做的是:

class MyComponent extends React.Component {
    constructor(props) {
        super(props);
        this.modifyState = this.modifyState.bind(this);
    }

    modifyState() { /* blah blah*/ }

    render() {
        return(
            <Child modifyState={this.modifyState} />
        );
    }
}

现在我的问题是:我真的不想这样做有什么原因,它会导致任何问题吗?

我问的原因是,如果没有缺点,为什么不让它成为它的默认行为,在其他语言中,它this始终是定义函数(方法)的类的实例。如果您想要当前行为(this根据我的理解是调用该函数的对象),只需声明一个全局函数。

标签: javascriptfunctionbinding

解决方案


推荐阅读