回调函数的后面加个bind(this)的作用是什么

学习reactjs的tutorial是看到function(){this.XX }.bind(this);不是很理解。
补充: bind的作用我懂,在这里的写法的目的不太了解

$.ajax({
      url: this.props.url,
      dataType: 'json',
      cache: false,
      success: function(data) {
        this.setState({data: data});
      }.bind(this),
      error: function(xhr, status, err) {
        console.error(this.props.url, status, err.toString());
      }.bind(this)
    });
阅读 15.2k
3 个回答

bind是返回一个绑定this后的函数,具体见这个问题
bind的实现

传送门 函数的具体用法可以去mdn上查一下。简单来说就是用来修改bind()前的函数内部this变量指向。
我感觉不bind的话,方法内部的this应该是配置对象吧就$.ajax({这个对象}),bind传入的this应该是组件。你console输出一下。

改变this的指向,类似以前大家很喜欢写的var that = this;或者var self = this;
都是一个道理

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题