记录一些基础知识:
1 let Lesson = { 2 site: 'houdunren', 3 lists: ['js','css','mysql'], 4 show: function(){ 5 6 return this.lists.map(function(){ 7 console.log(this) 8 },{a:'a是第二参数'}) 9 } 10 } 11 console.log(Lesson.show())
this指的是第二参数{a:'a是第二参数'}这玩意,再如:
1 let Lesson = { 2 site: 'houdunren', 3 lists: ['js','css','mysql'], 4 show: function(){ 5 6 return this.lists.map(()=>{ 7 console.log(this) 8 },{a:'a是第二参数'}) 9 } 10 } 11 console.log(Lesson.show())
看结果
这时的this指的就是Lesson这个对象,它们两者的不同就是一个是function关键字定义的函数,一个是箭头函数,如果用function定义的可以这样:
1 let Lesson = { 2 site: 'houdunren', 3 lists: ['js','css','mysql'], 4 show: function(){ 5 var that = this; 6 return this.lists.map(function(){ 7 console.log(that) 8 }) 9 } 10 } 11 console.log(Lesson.show()) 12 13 //等同于 14 let Lesson = { 15 site: 'houdunren', 16 lists: ['js','css','mysql'], 17 show: function(){ 18 19 return this.lists.map(function(){ 20 console.log(this) 21 },this)//this作为第二参数传进去,有些函数有第二参数,有些函数没有,map函数就有第二参数 22 } 23 } 24 console.log(Lesson.show())
浙公网安备 33010602011771号