关于小程序中箭头函数this指向的问题?

来源:25-3 使用Module和Class提取封装一个Movie对象

自由飞翔16

2017-06-09

  var obj = {
    say: function () {
      var f1 = function () {
        console.log(this);    //windows
        setTimeout(() => {
          console.log(this); //windows
        })
      };
      f1();
    }
  }
  obj.say()

老师,您好,为什么这里输出的结果两个windows呢?按照我的理解,箭头函数定义在obj里面,应该是输出一个windows,一个obj啊,如果我把函数改成如下,为什么又是输出两个obj呢

    var obj2 = {
    say: function () {
      var f1 = () => {
        console.log(this); // obj
        setTimeout(() => {
          console.log(this); // obj
        })
      }
      f1();
    }
  }
  obj2.say()


写回答

1回答

7七月

2017-09-28

两次函数调用产生2次obj,这个没有什么问题吧。和箭头函数没关系呀。

0
0

微信小程序入门与实战(全新版) 超20000人学习的好课

4年同步微信官方迭代,累计20000+人学习, 比微信官方更火爆!

23867 学习 · 6899 问题

查看课程