當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
编写可维护的JavaScript之避免使用全局变量
生活随笔
收集整理的這篇文章主要介紹了
编写可维护的JavaScript之避免使用全局变量
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、避免全局變量的理由
? ? js中避免創建全局變量一是避免命名沖突,二是避免因為創建全局變量讓代碼變得脆弱,三是創建全局變量會讓代碼難以測試。
?
二、避免創建全局變量的幾種方法
//避免全局變量 避免命名沖突 //1.單全局變量之命名空間 var YourGlobal = {namespace: function(ns) {var parts = ns.split("."),object = this,i, len;for (i=0,len=parts.length;i < len; i++) {if(!object[parts[i]]) {object[parts[i]] = {};}object = object[parts[i]];}return object;} };YourGlobal.namespace("Books.MaintainableJavaScript"); YourGlobal.Books.MaintainableJavaScript.author = "youyi"; YourGlobal.namespace("Books.HighPerformanceJavaScript"); //保持上面的YourGlobal.Books.MaintainableJavaScript原封不動 YourGlobal.Books.HighPerformanceJavaScript.name = "王寶強"; console.log(YourGlobal.Books.MaintainableJavaScript.author);//youyi console.log(YourGlobal.Books.HighPerformanceJavaScript.name);//王寶強 //在方法調用之后立即給它添加屬性 YourGlobal.namespace("Books").ANewBook = {};//2.單全局變量之模塊 //YUI模塊 是將模塊和命名空間概念合并在一起 YUI.add("my-module",function(Y) {//添加命令空間Y.namespace("Person.MaintainableJavascript");Y.Person.MaintainableJavascript.author = "xiaoma"; },"1.0.0",{requires:["dependency1","dependency2"]});//YUI().use()傳入想加載的模塊名稱來使用模塊 YUI().use("my-module","another-module",function(Y) {console.log(Y.Person.MaintainableJavascript.author); });//異步模塊 AMD define("my-module2",["dependency1","dependency2"],function(dependency1,dependency2) {var Books = {};Books.MaintainableJavaScript = {author: "張歆藝"};return Books; });//AMD模塊可以是匿名的,模塊加載器可以將JavaScript文件名當作模塊名稱,所以如果有一個叫my-module2.js的文件,模塊可以只通過模塊加載器來加載define(["dependency1","dependency2"],function(dependency1,dependency2) {var Books = {};Books.MaintainableJavaScript = {author: "張歆藝"};return Books; });//模塊加載器 //1.使用AMD模塊,需要一個與之兼容的模塊加載器(Dojo),用Dojo可以向下面這樣來加載 //Dojo同樣自己也封裝了AMD模塊 var books = dojo.require("my-module2"); console.log(books.MaintainableJavaScript.author);//2.RequireJs指定依賴和回調函數 //Jquery和Dojo都可以使用RequireJs來加載AMD模塊 require(["my-module2"],function(books) {console.log(books.MaintainableJavaScript.author); });//零全局變量 //特殊情況下才會使用,腳本很短且不需要和其他代碼產生交互的情況下使用 (function(win) {//"use strict"嚴格模式,避免創建全局變量var doc = win.document;//其他變量//其他相關代碼 });
?
轉載于:https://www.cnblogs.com/yy95/p/5788483.html
總結
以上是生活随笔為你收集整理的编写可维护的JavaScript之避免使用全局变量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: get_locked_objects_r
- 下一篇: Spring+SpringMvc+Myb