为了账号安全,请及时绑定邮箱和手机立即绑定

“TypeError: x is not a function” 即使代码有效

“TypeError: x is not a function” 即使代码有效

HUX布斯 2023-03-24 15:19:09
我在我的项目中的一个函数中遇到了上述错误,并将代码简化为以下内容。控制台成功记录了正确的结果,但仍然出现覆盖和错误。有什么办法可以阻止这种情况发生吗?当它仍然正确运行时抛出错误似乎很奇怪。func1 = (x,y) => {  let result=(x+y)  console.log(result)}func2 = x => {  x()   // <= TypeError pointing to this not being a function}func2(func1(1,4)) // returns 5 but still getting TypeError
查看完整描述

2 回答

?
心有法竹

TA贡献1866条经验 获得超5个赞

func2接受一个函数作为参数,但你将它func1(1,4)作为参数传递,它的计算结果为undefined(因为func1不返回任何东西)。


传递一个使用 所需参数调用的函数func,如果这是你想要做的:


const func1 = (x, y) => {

  const result = x + y;

  console.log(result);

}


const func2 = x => {

  x();

};



func2(() => func1(1, 4));

或者,如果您想获得更多功能,您甚至可以执行以下操作:


const func1 = x => y => x + y;


const func2 = x => x;


console.log(func2(func1)(1)(4));


查看完整回答
反对 回复 2023-03-24
?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

您已经将函数作为参数发送。传入的属性已经是一个函数。您无需再次键入“()”。


const func1 = (x, y) => {

const result = x + y;

console.log(result);

}


const func2 = x => {

  x;

};


func2(func1(1, 4));


查看完整回答
反对 回复 2023-03-24
  • 2 回答
  • 0 关注
  • 208 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信