使用 .bind() 时访问原始 'this'
Accessing original 'this' when using .bind()
我刚开始使用 FUNCTION.bind(scope)
而不是制作作用域别名。
我想知道是否有一种方法可以访问原始作用域,即 this 所引用的内容,以便我可以使用这两个作用域而无需创建作用域别名 (var scope = this;
)
// Example using a psuedo library
var scope = {
load: function() {
Request.ajax({
url: '/api/thing',
success: function(response) {
var data = this.convertToJson(response);
var config = ORIGINALSCOPE.getConfigData();
this.renderData(data, config);
}.bind(this)
});
},
convertToJson: function(json) {
return JSON.parse(json);
}
}
没办法。如果你想访问两者 - 使用闭包而不是 bind
P.S> 在您的情况下,您可以在函数
中使用 scope
我刚开始使用 FUNCTION.bind(scope)
而不是制作作用域别名。
我想知道是否有一种方法可以访问原始作用域,即 this 所引用的内容,以便我可以使用这两个作用域而无需创建作用域别名 (var scope = this;
)
// Example using a psuedo library
var scope = {
load: function() {
Request.ajax({
url: '/api/thing',
success: function(response) {
var data = this.convertToJson(response);
var config = ORIGINALSCOPE.getConfigData();
this.renderData(data, config);
}.bind(this)
});
},
convertToJson: function(json) {
return JSON.parse(json);
}
}
没办法。如果你想访问两者 - 使用闭包而不是 bind
P.S> 在您的情况下,您可以在函数
中使用scope