这个问题在这里已经有了答案:




8年前关闭。




这些有什么区别?

var person = {
    age: 25,
    name: "David"
};

var person = (function() {
    var name = "David", age = 25;
}());

我的问题是,(function(){}()) 有什么作用?

最佳答案

(function(){}()) 有什么作用?

这实质上创建了一个匿名函数,然后执行它。一个常见的用途是限制全局变量。

例如,以下将具有三个全局变量( var1var2var3 ):

var var1 = "a", var2 = "b", var3 = "c";

如果将这些声明包装在匿名函数中,它们仍然可以作为匿名函数中的局部变量访问,但不会覆盖全局命名空间。例如:
(function() {
    var var1 = "a", var2 = "b", var3 = "c";
    console.log(var1); // interact with local variables
})(); // execute function.

这些有什么区别?
var person = {
    age: 25,
    name: "David"
};

如果此代码包含在函数中,则会创建一个名为 person 的局部变量。否则,它会创建一个名为 person 的全局变量。
var person = (function() {
    var name = "David", age = 25;
}());

此代码创建并执行一个匿名函数,然后将该匿名函数的返回码分配给变量 person 。由于匿名函数没有返回值,变量 person 的值为 undefined 。这个语句,就目前而言,在功能上等同于 var person; ,因为匿名函数没有副作用,也没有返回值。

关于javascript - 定义这些对象有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11927749/

10-11 16:59