Закрытие Javascript?
Способ № 1
function transform(ar) {
var alStr = [];
for(var i=0; i<ar.length; i++) {
alStr[i] = (function(v) {
return (function() {
return v;
});
}(ar[i]));
}
return alStr;
}
var a = ["a", 24, { foo: "bar" }];
var b = transform(a);
a[1];
b[1]();
Способ № 2
function transform(ar) {
var alStr = [];
for(var a in ar) {
var O = function() {
return a;
}
alStr.push(O);
}
return alStr;
}
var a = ["a", 24, { foo: "bar" }];
var b = transform(a);
a[1];
b[1]();
Вышеупомянутые методы используются для преобразования объектов массива в отдельные функции, которые при исполнении возвращают конкретный объект массива. Хотите знать, почему метод № 1 работает, а метод № 2 - нет.