我是编码新手,javascript有时会有一些奇怪的语法。 我知道很多调用函数的方法,但是这个方法让我很感兴趣。 我查看了开发人员编写的代码,并推断出发生了什么,但无法理解。
通过在("")
内的函数定义旁边放置()
来调用函数。
(function functionName() {console.log("Hello")}) ("")
// Hello
(functionName)("")
// evaluates the function
我试过搜索但在这里找不到。如果有人能解释这里发生了什么(这个概念),我将不胜感激。如果这个问题重复,请告诉我。感谢。
答案 0 :(得分:2)
您只需使用一个参数functionName
调用函数""
。
如果您定义这样的函数:
function functionName() {console.log("Hello")}
然后这两个陈述是等价的:
functionName
(functionName)
键入
时(function functionName() {console.log("Hello")})("")
你:
functionName
将在下一行代码中定义 ""
该函数不接受参数,那么为什么我将参数""
传递给它时呢?
Javascript允许调用具有更多/更少参数的函数,然后接受:
""
将被丢弃。undefined
。
function test(a, b) { console.log(a + " " + b) }
test() // undefined undefined
test("a") // a undefined
test("a", "b") // a b
test("a", "b", "c") // a b