【问题标题】:Proper way to add JavaScript include guard添加 JavaScript 的正确方法包括保护
【发布时间】:2018-08-01 08:57:58
【问题描述】:

在 C 编程语言中,有一个包含保护,可以防止同一个头文件被包含两次:

#ifndef GRANDPARENT_H
#define GRANDPARENT_H

struct foo {
    int member;
};

#endif /* GRANDPARENT_H */

在网页中,JavaScript 也经常用作头文件。有时,开发人员可能会错误地将同一个文件包含两次,从而导致难以调试的错误(示例 here)。

防止多个包含同一文件的正确方法应该是包含保护。但是,将这种保护添加到 JavaScript 文件以便它在不污染命名空间、破坏其他脚本和其他不需要的行为的情况下工作的正确方法是什么?


这个问题不是that question的重复问题,它没有谈论使用这样的守卫的潜在问题。此外,它指向另一个库,而轻量级的内联解决方案会更受欢迎。

【问题讨论】:

  • “在网页中,JavaScript 也经常被用作头文件。” – 这种说法毫无意义……!?
  • @deceze 如果你在<body> 内的<script> 元素中编写JavaScript,在这种情况下,我想知道你是否仍然可以称它为header 文件。我不是很喜欢这种风格,但有些人会这样做。
  • 头文件,就像在 C .h 文件中一样,与将 script 元素放入 HTML <head> 元素完全不同。

标签: javascript include


【解决方案1】:

最模块化、可重用和“安全”的方法就是包含一个文件,除了定义一些对象/类/名称之外,不应该任何事情。如果您多次包含一个文件,它只会覆盖以前的定义。然后,您在某处明确启动代码的 one 入口点,例如:

<body onload="myscript.foo()">

Javascript 中的包含也是如此(通常需要构建/捆绑系统):

import foo from 'bar';
const foo = require('bar');

foo();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-01
    • 2016-12-11
    • 2018-03-16
    • 2015-03-29
    • 2011-08-11
    • 1970-01-01
    • 2011-02-05
    • 2023-03-07
    相关资源
    最近更新 更多