我想在原型方法的回调函数中使用this
,例如:
String.prototype.new= function (data) {
'use strict';
//here I can use 'this'
Object.getOwnPropertyNames(data).forEach(function (d) {
//here I want to use 'this' but I can't
});
};
请参阅上面的评论:如何在回调中使用this
?
答案 0 :(得分:0)
forEach
接受第二个参数,该参数告诉它在回调期间用于this
的内容,所以:
String.prototype.new= function (data) {
'use strict';
//...
Object.getOwnPropertyNames(data).forEach(function (d) {
//...
}, this);
// ^^^^^^--------------- added
};
几乎所有新 ES5 Array
方法都有thisArg
个参数。
如果您使用的某些内容没有有一个以这种方式使用的参数(例如,旧的Array#sort
函数),您可以使用保存的变量{ {1}}然后在回调中使用变量:
this