解释奇怪的JavaScript赋值语法
我正在读一篇用JavaScript解释函数原型和继承的文章,突然遇到了这些我无法理解的代码行解释奇怪的JavaScript赋值语法,javascript,function,object,Javascript,Function,Object,我正在读一篇用JavaScript解释函数原型和继承的文章,突然遇到了这些我无法理解的代码行 a = {} (function(){}()) 这两行代码的作用是什么?这是两行代码。哪一个你不明白?(然而,代码几乎什么都不做。)通常情况下,你不会把你的脑袋绕在它周围,但你会把你的临时代码放在里面!这是一种生活:D为什么投反对票?我对第二行更感兴趣第二行代码是IIFE,正如上面的注释所说:IIFE=立即调用的函数表达式。IIFE有很多用途,比如为代码创建闭包。检查第二个到最后一个例子是语法错误;
a = {}
(function(){}())
这两行代码的作用是什么?这是两行代码。哪一个你不明白?(然而,代码几乎什么都不做。)通常情况下,你不会把你的脑袋绕在它周围,但你会把你的临时代码放在里面!这是一种生活<代码>:D为什么投反对票?我对第二行更感兴趣第二行代码是IIFE,正如上面的注释所说:IIFE=立即调用的函数表达式。IIFE有很多用途,比如为代码创建闭包。检查第二个到最后一个例子是语法错误;这就是添加括号的目的。
a={}
是否受到第二行的影响?当语句以function
关键字开头时,它是一个函数声明语句,后面的()
是错误部分。所以是的,我想现在更好了:)@CupofJava不,不是;这两条语句是独立的,彼此之间完全没有影响。@在JavaScript中,Java分号通常是可选的(但请无论如何使用它们,原因现在应该是显而易见的:)
a = {} // Be 'a' an empty object (But why ?)
function(){ // Declare a function that says Hello when it's called
alert("Hello");
}
function(){ // Declare a function that says Hello and execute it immediately with ()
alert("Hello");
}()
function(){}() // Declare a function that...does nothing, and execute it immediately with ()... But apparently you can't, that's a syntax error (Thanks @pointy)
(function(){}()) // Makes it work (no syntax error)