// 输出 0 - 9
function test() {
var arr = [];
for (var i = 0; i < 10; i++) {
arr[i] = function() {
console.log(i);
}
}
return arr;
}
var myArr = test();
for(var j = 0; j < 10; j++) {
myArr[j]();
// 输出 10个10
}
// 可以用let 来解决。把 var 改为 let 输出 0 1 2 3 4 5 6 7 8 9 10;
// 闭包解决
function test() {
ar arr = [];
for (var i = 0; i < 10; i++) {
(function (j) {
arr[j] = function () {
console.log(j);
}
}(i)) // 每次运行时 i被保存到了 j
}
return arr;
}
var myArr = test();
for (var j = 0; j < 10; j++) {
myArr[j]();
// 输出 0-9
}
function test() {
var food = 'apple';
var obj = {
eatFood: function () {
if(food !='') {
console.log('i am eating ' + food);
food = '';
}
else {
console.log('There is nothing! ');
}
},
pushFood: function (myFood) {
food = myFood;
}
}
return obj;
}
var person = test();
person.eatFood();
person.eatFood();
person.pushFood('banana');
person.eatFood();