javascript 为什么JS会自动执行变量?

pvcm50d1  于 2023-09-29  发布在  Java
关注(0)|答案(1)|浏览(76)

我只是在学习JavaScript,我不确定为什么当我把函数赋值给变量时,它会自动执行。
我的印象是,分配一个变量本质上就像把东西放进一个容器。
比如,为什么这会在控制台中自动返回'hello'?

let a = console.log('hello')

我希望控制台只返回'hello',如果我调用。
或者为什么这会自动返回一个提示:

let answer = parseInt(prompt("Please enter the number you would like to FizzBuzz up to: "));

我希望它只在我调用变量answer时返回提示符。
我如何将一个函数分配给一个变量而不自动执行它?

vxqlmq5t

vxqlmq5t1#

无论何时你在函数后面加上括号(或者是带参数的括号,或者是空括号),你都是在告诉它执行。然后分配给变量的是函数执行的 * 结果 *。
可以将函数本身赋值给一个变量而不执行它,就像这样:

a = console.log

但是如果你想预先提供参数,或者函数内部使用this关键字,有一些注意事项。
最简单的方法可能是将它放在另一个函数中。

// not executed yet
let a = function() {
  console.log('hello');
}

// execute it
a()

或者使用更短的语法,如注解中所述:

// not executed yet
let a = () => console.log('hello');

// execute it
a()

相关问题