我正在使用带有babel的es6 javascript,并尝试使用xhr使用两个函数进行ajax调用,但收到错误'h5_fn'
从es6 javascript中同一个类中定义的另一个函数调用函数的正确语法是什么?
感谢您的回答,这是我的代码
h5_fn
Edit1:这就是我如何调用登录功能/也将数据传递给上面的xhr请求
Uncaught TypeError: this.post is not a function
答案 0 :(得分:1)
您的方法login()
和post()
是实例方法,而不是静态方法。因此,您必须使用LoginActions
创建new
对象的实例,以便在该对象上正确调用这些方法。
或者,如果您实际上不需要包含实例数据的实例,那么请将所有方法设为静态,并将其称为LoginActions.post()
和LoginActions.login()
,而不是this
。
相反,你正试图混合搭配。您正在调用LoginActions.login()
这是一个静态类型调用,然后在login()
内部,您尝试引用假设某个实例的this
。
答案 1 :(得分:0)
试试这些事情:
var loginAction = new LoginActions();
loginAction.login(name, password, remember);
this.post('api/login', data, function(err, data) { if (!err) { this.actions.loginSuccess(data.message); } else { this.actions.loginFail(JSON.parse(data.message)); } }).bind(this);
在这里,您似乎试图将this
绑定到回调。但实际上你将this
绑定到post方法的返回值。要将this
绑定到回调,this.post('api/login', data, function(err, data) { if (!err) { this.actions.loginSuccess(data.message); } else { this.actions.loginFail(JSON.parse(data.message)); } }.bind(this));
注意函数(){}。bind而不是post(function(){})。bind