zoukankan      html  css  js  c++  java
  • 避免JS全局变量冲突


    一、原则
    1.1 用匿名函数将脚本包起来
    1.2 使用命名空间(多级)


    二、改进过程

    2.1 原始数据(a.js和b.js都有全局变量window.a,导致冲突,全局变量属于window)

    //a.js
    <script type="text/javascript"> var a=123,b="hello world"; </script> //b.js <script type="text/javascript"> var a,c="abc"; </script>


    2.2 使用匿名函数(a.js和b.js中的a都不是全局变量,但是b.js中无法访问a.js中的b,没办法通信)

    //a.js
    (function()
    {
    var a=123,b="hello world";
    })();
    
    //b.js
    (function()
    {
    var a,c="abc";
    })();

    2.3 使用全局变量进行通信(使用window.str作为全局变量,会导致全局变量越来越好,不好维护)

    var str;
    //a.js
    (function()
    {
    var a=123,b="hello world";
    window.str=a;
    })();
    
    //b.js
    (function()
    {
    var a,c="abc";
    alert(window.str);
    })();

    2.4 使用命名空间

    var GLOBAL={};
    //a.js
    (function()
    {
    var a=123,b="hello world";
    GLOBAL.A.a=a;
    })();
    
    //b.js
    (function()
    {
    var a,c="abc";
    alert(GLOBAL.A.a);
    })();
  • 相关阅读:
    js中this的用法
    js原型链与继承(初体验)
    关于C语言指针中的p++与p+i
    react todolist
    react表单提交
    react条件渲染
    react初体验
    初次接触express
    阿里内推在线编程题(返回元素的选择器)
    模块初始化
  • 原文地址:https://www.cnblogs.com/gossip/p/3859151.html
Copyright © 2011-2022 走看看