如果我有像这样的全局数组
var arr = [value1, value2...];
然后我得到了像这样的建设者
function myFunction() {
this.array = [];
this.toArray();
}
然后像这样的原型方法
myFunction.prototype.toArray = function() {
arr.forEach(function() {
if (statement) {
// How can I do if I from here, want to push the current value, to the array in the cunstructor function?
}
});
}
正如评论所说,如果我从注释所在的位置,想要将forEach函数中的当前值推回到构造函数中的数组中?我尝试使用this.array.push();
,但意识到我无法使用它,因为它现在引用了arr数组。
答案 0 :(得分:0)
修改强>
如果你不喜欢上面代码段中的var that = this
,你可以这样做:
myFunction.prototype.toArray = function(arr) {
arr.forEach((function(item) {
if (item%2 ===0) {
this.array.push(item);
}
}).bind(this));
}
但我更喜欢:
function myFunction() {
this.array = [];
}
myFunction.prototype.toArray = function(arr) {
arr.forEach((function(item) {
if (item%2 ===0) {
this.array.push(item);
}
}).bind(this));
}
var test = new myFunction();
var arr = [1, 2, 3, 4];
test.toArray(arr);
alert(test.array);