Add scope to ol.Array.forEach
This commit is contained in:
+5
-3
@@ -104,10 +104,12 @@ ol.Array.prototype.clear = function() {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {function(*, number)} callback Callback.
|
* @param {function(this: T, *, number)} f Function.
|
||||||
|
* @param {T=} opt_obj The object to be used for the value of 'this' within f.
|
||||||
|
* @template T
|
||||||
*/
|
*/
|
||||||
ol.Array.prototype.forEach = function(callback) {
|
ol.Array.prototype.forEach = function(f, opt_obj) {
|
||||||
goog.array.forEach(this.array_, callback);
|
goog.array.forEach(this.array_, f, opt_obj);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -192,3 +192,24 @@ function testLengthChangeSetAt() {
|
|||||||
array.setAt(1, 1);
|
array.setAt(1, 1);
|
||||||
assertUndefined(lengthChangedCalled);
|
assertUndefined(lengthChangedCalled);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function testForEach() {
|
||||||
|
var array = ol.Array.create([1, 2, 4]);
|
||||||
|
var sum = 0;
|
||||||
|
array.forEach(function(elem) {
|
||||||
|
sum += elem;
|
||||||
|
});
|
||||||
|
assertEquals(7, sum);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function testForEachScope() {
|
||||||
|
var array = ol.Array.create([0]);
|
||||||
|
var that;
|
||||||
|
var uniqueObj = {};
|
||||||
|
array.forEach(function(elem) {
|
||||||
|
that = this;
|
||||||
|
}, uniqueObj);
|
||||||
|
assertTrue(that === uniqueObj);
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user