这有什么区别:
(function() {
var Person = {
sayHello: function() {
alert('Hello World');
}
}
Person.sayHello();
})();
Run Code Online (Sandbox Code Playgroud)
还有这个:
var Person = {
sayHello: function() {
alert('Hello World');
}
}
Person.sayHello();
Run Code Online (Sandbox Code Playgroud)
除了后者创建一个公共函数,前者是一种创建一种私有函数的方法(你不能在括号外引用Person ...有什么区别?
第一个不会Person在当前作用域周围留下一个名为float 的变量(因为当IIFE完成执行时没有对它的引用),也不会覆盖Person该作用域中调用的任何其他变量.
(第二个缺少一个,}但我认为这是问题中的拼写错误).