代码结构的Javascript习惯用法

代码结构的Javascript习惯用法,javascript,idioms,Javascript,Idioms,我的javascript多次包含在脚本标记中,如下所示: <script src="code.js></script> <script src="code.js></script> <script src="code.js></script> 有没有更好的结构可以让我的代码只运行一次 var _ow = _ow || { Auth: ... }; 如果已经定义了,就不会再定义了。你熟悉Crockford的吗 关于如何防止

我的javascript多次包含在脚本标记中,如下所示:

<script src="code.js></script>
<script src="code.js></script>
<script src="code.js></script>
有没有更好的结构可以让我的代码只运行一次

var _ow = _ow || { Auth: ... };

如果已经定义了,就不会再定义了。

你熟悉Crockford的吗

关于如何防止覆盖命名空间的一个细微变化:

var _ow;
if(!_ow) _ow = {};

虽然您所做的在技术上是可行的,但效率很低,因为即使您的代码只运行一次,在某些浏览器上也会被多次解析(这与通过网络下载文件不同,并且无法缓存)


最好确保脚本只包含一次。对于所有重复的功能,您可以在需要时公开一个要调用的函数。

是的,我正在做类似的事情,但是我需要对我的所有“函数”都这样做,比如_ow.Auth=_ow.Auth | |(function(){})();这可不太好。你只需要为一个函数做一次,而不必为每个函数做多次,只需创建一次变量就可以了。。。为什么你的code.js会被多次收录?老实说,你所拥有的是用于此的JavaScript习惯用法。这也是最具可读性的方法。不需要太聪明。那个代码片段是如何工作的?当重新执行这段代码时,它将重新定义_oweverytime.var _ow=9;var_ow;断言(_ow==9)//true
var _ow;
if(!_ow) _ow = {};