调用不带参数的函数

问题描述 投票:1回答:2

我通过反复试验发现了以下内容。主要是错误。这就是愚蠢的提问时间™...

为什么Javascript not在调用不带参数的函数时会引发错误?你为什么要那个?

something // call the function but forgot about the parameters

function something()
{
  // some code here
  alert("Working on it!");
}
javascript function ecmascript-5
2个回答
3
投票

因为函数是Javascript中的一等成员-可以像任何表达式一样引用它们。例如,也许您想将其存储在另一个变量中:

function foo() { console.log('foo'); }

const anotherReferenceToFoo = foo;
anotherReferenceToFoo();

或者也许您想传递函数本身,而不调用它,例如addEventListener

function foo() { console.log('foo'); }
button.addEventListener('click', foo);
<button id="button">click</button>

或到setTimeout

function foo() { console.log('foo'); }
setTimeout(foo, 1000);

在不调用函数名的情况下对其进行引用是一项非常有用的技术。没有它,很多事情将是不可能的。

如果您有仅一行 something,上面没有其他内容,则这不是错误,原因与未使用的表达式不是错误的原因相同。

'5';

true;

() => 'foo';

console.log('syntax is fine');

[如果要确保您不会犯此类错误,请考虑安装ESLint并强制执行no-unused-expressions规则。


0
投票

在javascript中定义可变短语时如下:

var vrble 

并且当定义函数和调用函数看起来像这样时:

function something()
{
  // some code here
  alert("Working on it!");
}
something();

如果您在函数名称后不使用括号,则编译器认为该短语是变量。对于您的情况,如果在不带括号的情况下编写“ something”,则请将短语“ something”视为变量。

© www.soinside.com 2019 - 2024. All rights reserved.