当前位置: 首页 > 知识库问答 >
问题:

把这个传给我。调用()到arrow函数[重复]

养研
2023-03-14

我尝试使用call()执行一个箭头函数。为简化起见,具体如下:

按预期运行

const func = (e) => {
    console.log(e)
}

func.call(null, e)

嗯...这是怎么回事?

我希望下面的代码将元素作为this传递到func

const func = (e) => {
    console.log(this)
    console.log(e)
}

func.call(element, e)

但是,这个仍然是未定义的。

如果我将其切换为常规函数定义,则所有函数都会按预期工作。

const func = function (e) {
    console.log(this)
    console.log(e)
}

func.call(element, e)

问题

为什么我不能将this的上下文从call()传递到箭头函数中?

共有2个答案

梁丘权
2023-03-14

在ES6中,箭头函数内部的的词汇范围意义值与箭头函数外部的值相同。在前ES6形式中,这个是作为第一个参数传递给调用方法的对象。

颜修真
2023-03-14

this未绑定在箭头函数中,因此call()Application()只能传入参数

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions#Invoked_through_call_or_apply

 类似资料:
  • 为什么这在Node.js控制台(在4.1.1和5.3.0中测试)中工作,但在浏览器中不工作(在Chrome中测试)? 这个代码块应该创建并调用一个匿名函数,该函数记录。 另外,当上述操作在节点中工作时。js,这不起作用: 也不是这个: 奇怪的是,当添加参数时,它实际上会在立即调用的部分抛出一个。

  • 在async-nature-of-setState中我们已经提到过, setState其实是异步的. 因为出于性能优化考虑, React会将多次setState做一次批处理. 于是setState并不会在被调用之后立即改变我们的state. 这就意味着你并不能依赖于在调用setState方法之后state, 因为此时你并不能确认该state更新与否. 当然针对这个问题我们也有解决办法—用前一个st

  • 问题内容: 我有一个用Java实现的javascript接口,该接口由Web视图中加载的javascript代码调用。 JS Inside webview: Java: 通过webview加载的字符串最终是: 我有一些想法: 一个。在JS中以字符串形式构建回调。 b。在将回调传递给Android.myFunction()之前,先调用回调的toString(); 我的问题是,最好的方法是什么?我希望

  • 本文向大家介绍PowerShell函数中把参数传入另一个函数的函数传参例子,包括了PowerShell函数中把参数传入另一个函数的函数传参例子的使用技巧和注意事项,需要的朋友参考一下 本文介绍在自定义PowerShell函数时,可以使用@PSBoundParameters来将参数传递给另一函数。 下面,我们来创建一个Get-BIOS的函数, 在这个函数中,我们并没有作任何实际的操作,只是将输入的参

  • 问题内容: 我正在尝试将一些参数传递给用作回调的函数,该怎么做? 问题答案: 如果您想要更一般的东西,可以使用arguments变量,如下所示: 但是否则,您的示例可以正常工作(可以在测试器中使用arguments [0]代替回调)

  • 问题内容: 这个问题已经在这里有了答案 : 如何将变量和数据从PHP传递到JavaScript? (20个答案) 5年前关闭。 我正在尝试将PHP数组变量转换为JavaScript变量。 这是我的代码: 我无法获得PHP数组的价值。 我该如何解决这个问题? 问题答案: 在下面的示例中,您具有一个PHP数组,然后首先通过一个PHP数组创建一个JavaScript数组: