Javascript 为什么不';t箭头函数在electron中的引用脚本中工作?

Javascript 为什么不';t箭头函数在electron中的引用脚本中工作?,javascript,jquery,ecmascript-6,electron,arrow-functions,Javascript,Jquery,Ecmascript 6,Electron,Arrow Functions,快速免责声明:我对html和 javascript;我从不做任何网络开发。我在学电子 因为它似乎是gui编程的一种新方法 我正在学习如何使用electron,同时也在学习不同的javascript库,如jQuery和bootstrap。我目前正在通过开发jQuery。在链接页面上的中,他们使用匿名函数编写脚本。很酷,但是我想使用arrow函数语法 现在,我不太了解他们的交互式浏览器环境,但我在自己的环境中设置了相同的示例。区别在于我使用electron来显示页面,并且我链接了一个脚本,而不是在

快速免责声明:我对html和 javascript;我从不做任何网络开发。我在学电子 因为它似乎是gui编程的一种新方法


我正在学习如何使用electron,同时也在学习不同的javascript库,如jQuery和bootstrap。我目前正在通过开发jQuery。在链接页面上的中,他们使用匿名函数编写脚本。很酷,但是我想使用arrow函数语法

现在,我不太了解他们的交互式浏览器环境,但我在自己的环境中设置了相同的示例。区别在于我使用electron来显示页面,并且我链接了一个脚本,而不是在
index.html
中编写它。i、 e.在我的
头部
标签下,我有

 <script src="./script.js"></script>
main.js
如下所示

let $ = require('jquery')

$(document).ready(() => {
    $('p').click(() => {
        $(this).hide()
    })
})
const {app, BrowserWindow} = require('electron')
const url = require('url')
const path = require('path')

app.on('ready', () => {
    let win = new BrowserWindow({width: 800, height: 600})
    win.loadURL(url.format({
        pathname: path.join(__dirname, 'index.html'),
        protocol: 'file:',
        slashes: true
    }))
})
当我运行
electron./main.js
时,当单击任何
项时,它们会消失,但不会消失。但是,如果我将
script.js
中的所有箭头函数改回原来的匿名函数语法,一切都会正常工作

我不明白为什么会发生这种情况,因为
main.js
中有箭头函数,而且它工作得非常好。在引用使用ES6标准的脚本时,是否需要执行一些额外的步骤?或者电子有什么奇怪的东西吗?

根据其定义,箭头函数不为与正常函数相关的各种变量赋值,其中一个变量是
this

箭头函数表达式的语法比函数表达式短,并且没有自己的this、arguments、super或new.target

解决这个问题有两种方法。首先,使用一个普通函数,将值分配给此。或者,您可以将事件传递给事件处理程序,并从中访问元素

$('p').on('click', e => $(e.target).hide())

是否不可能使用箭头功能对单击的对象执行操作?这回答了我的问题,完全解决了我的问题。我不知道什么是最好的行动:你应该回答这个问题以便我能接受,还是应该结束这个问题?