以最小的改动解决以下代码的错误(可以使用es6)
const obj = {
name: " jsCoder",
skill: ["es6", "react", "angular"],
say: function () {
for(var i = 0, len = this.skill.length; i< len; i++){
setTimeout(function(){
console.log('No.' + i + this.name);
console.log(this.skill[i]);
console.log('--------------------------');
}, 0);
console.log(i);
}
}
};
obj.say();
/* 期望得到下面的结果: 1 2 3 No.1 jsCoder
es6
No.2 jsCoder
react
No.3 jsCoder
angular
*/
var obj = {
name: " jsCoder",
skill: ["es6", "react", "angular"],
say: function () {
console.log(this.skill.length)
for(var i = 1, len = this.skill.length; i<= len; i++){
(function(i,_this){
setTimeout(function(){
console.log('No.' + i + _this.name);
console.log(_this.skill[i]);
console.log('--------------------------');
}, 0);
console.log(i);
})(i,this)
}
}
};
执行obj.say()会打印出如下:
1
2
3
No.1 jsCoder
es6
--------------------------
No.2 jsCoder
react
--------------------------
No.3 jsCoder
angular
--------------------------
*/
评论(0)