tôi định nghĩa hai hàm cho mảng:Làm thế nào để gọi bên ngoài "này" trong chức năng bên trong?
Array.prototype.remove = function(obj) {
var i = this.length;
while (i--) {
if (this[i] === obj) {
this.removeAt(i);
}
}
};
Array.prototype.removeAll = function(array2) {
array2.forEach(function(item) {
this.remove(item); // remove not found!!
});
}
Nhưng trong removeAll
chức năng, nó báo cáo function remove is not found
. Tôi sửa nó như sau:
Array.prototype.removeAll = function(array2) {
var outer = this;
array2.forEach(function(item) {
outer.remove(item);
});
}
Nhưng nó xấu xí. Có cách nào tốt hơn?
Tôi không nghĩ nó cực kỳ xấu xí và nó hoạt động. 'Điều này' trong foreach của bạn được thay đổi thành mục trong lần lặp lại, vì vậy tôi không thấy quá nhiều thứ xung quanh nó. – Paddy