解释奇怪的JavaScript赋值语法

解释奇怪的JavaScript赋值语法,javascript,function,object,Javascript,Function,Object,我正在读一篇用JavaScript解释函数原型和继承的文章,突然遇到了这些我无法理解的代码行 a = {} (function(){}()) 这两行代码的作用是什么?这是两行代码。哪一个你不明白?(然而,代码几乎什么都不做。)通常情况下,你不会把你的脑袋绕在它周围,但你会把你的临时代码放在里面!这是一种生活:D为什么投反对票?我对第二行更感兴趣第二行代码是IIFE,正如上面的注释所说:IIFE=立即调用的函数表达式。IIFE有很多用途,比如为代码创建闭包。检查第二个到最后一个例子是语法错误;

我正在读一篇用JavaScript解释函数原型和继承的文章,突然遇到了这些我无法理解的代码行

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)