记录一些基础知识:

 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())

 

posted on 2021-02-28 23:20  你这个梦,有点大  阅读(65)  评论(0)    收藏  举报