在C编程语言中,有一个include防护,可防止同一头文件被两次包含:
#ifndef GRANDPARENT_H
#define GRANDPARENT_H
struct foo {
int member;
};
#endif /* GRANDPARENT_H */
在网页中,JavaScript也经常用作头文件。有时,开发人员可能会错误地两次包含同一文件,从而导致难以调试的错误(示例here)。
防止包含同一文件的多个包含的正确方法应该是包含保护。但是,向JavaScript文件添加此类防护以使其在不污染名称空间,不破坏其他脚本和其他不良行为的情况下正确的方法是什么?
这个问题不是that question的重复,后者没有讨论使用这种防护装置的潜在问题。此外,它指向另一个库,而轻量级的内联解决方案将更受欢迎。
答案 0 :(得分:1)
最模块化,可重用和“安全”的方法仅仅是,除了定义一些对象/类/名称之外,包含文件不应该执行任何操作。如果您多次包含文件,则它只会覆盖先前的定义。然后,您在某个地方显式启动了代码的一个入口点,例如:
<body onload="myscript.foo()">
Javascript中的内容也是如此(通常需要构建/捆绑系统):
import foo from 'bar';
const foo = require('bar');
foo();