【问题标题】:Calling a function without parameters调用不带参数的函数
【发布时间】:2020-07-29 17:41:12
【问题描述】:

我通过反复试验发现了以下内容。主要是错误。 所以现在是 Stopid Question Time™...

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

something // call the function but forgot about the parameters

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

【问题讨论】:

  • 声明 something 本身与声明 7 本身几乎相同。它什么也没做,但它不是错误。

标签: javascript function ecmascript-5


【解决方案1】:

因为函数是 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 规则。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-12
    • 2014-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    相关资源
    最近更新 更多