执行 JavaScript 代码的尴尬方式
2022-08-30 04:55:03
在 Google 关于在 Flask 应用程序中实现 Google+ 登录的教程中,我发现开发人员经常使用一种尴尬的方式来执行 JavaScript 代码:
而不是做
var a = foo(bar);
我看到这个:
var a = (function() {
return foo(bar);
})();
以奇怪的方式这样做的原因是什么?
在 Google 关于在 Flask 应用程序中实现 Google+ 登录的教程中,我发现开发人员经常使用一种尴尬的方式来执行 JavaScript 代码:
而不是做
var a = foo(bar);
我看到这个:
var a = (function() {
return foo(bar);
})();
以奇怪的方式这样做的原因是什么?
这是一个糟糕的例子。请考虑以下事项:
var a = (function(){
var ret = {};
ret.test = "123";
function imPrivate() { /* ... */ }
ret.public = function() { imPrivate(); }
return ret;
})();
a
将包含可变测试和函数公共,但是您无法访问 imPrivate。这是处理公共变量与私有变量的常用方法;
有关详细信息,请参阅为什么此函数括在括号中,后跟括号?。
var a = (function() {
return foo(bar);
})();
在这种情况下,这确实是不必要的,但这并不是错的,也不会引发错误。
但有时使用如下:IIF
module pattern
var a = (function() {
/* some other code in own scope */
return foo(bar);
})();
在这种情况下,只是一个出口的东西在外面。IIF
module