关于this的错题

错题一
//代码一:
     var a = 1;
     var foo = {
       a: 2,
       bar: function () {
         return this.a;
      }
    }
console.log(foo.bar());//2
错误思路:认为foo.bar()执行返回this.a,然后console.log(this.a);
//代码二:
    var a = 1
    var foo = {
      bar: function () {
        return this.a;
      }
    }
    console.log(foo.bar());//undefined
分析:结合代码一代码二的结果分析不难看出,实际上先执行return 后面的表达式,然后将值return出去。在本例中先找this.a,如果只能找不到this.a就返回undefined
posted @ 2020-11-24 18:46  17135131xjt  阅读(50)  评论(0编辑  收藏  举报