Javascript箭头功能这个关键字问题

时间:2017-11-19 11:26:04

标签: javascript

我有以下代码:

window.$(".my-class").datepicker({
    ...
    onSelect: function() {

        var event = new CustomEvent("input", {});
        this.dispatchEvent(event);
    },
    ...

它有效。但是一旦我将功能改为箭头功能

window.$(".my-class").datepicker({
    ...
    onSelect: () => {

        var event = new CustomEvent("input", {});
        this.dispatchEvent(event);
    },
    ...

我在this上收到错误,说它没有参数dispatchEvent。为什么我的箭头功能有不同的this

1 个答案:

答案 0 :(得分:0)

在第二种情况下,这指的是datepicker函数的函数,而不是实际的窗口

如果 arrow function 出现在顶部作用域中,当常规函数中的箭头函数将其参数设置为相同时,此参数将始终引用全局作用域。它的外部功能