1. 程式人生 > >關於javascript的名稱空間[轉]

關於javascript的名稱空間[轉]

1. JavaScript 是不會禁止你重複定義函式和變數的, 但他只會使用最後定義的版本, 也就是說, 這將導致前面的失效, 令系統出錯. 比如, $(id) 是最常用的, 也許你會毫不猶豫的在自己的指令碼上定義這個函式, 但是當你用上 prototype, 你就會發現, 它和 prototype 的函式衝突, 並導致你的頁面跑不動了. 怎麼辦? 這時候就需要名稱空間了. 我釋出的主題裡面的 JavaScript 都有用名稱空間包起來的, 我這麼做就是為了防止和某些外掛的程式碼發生衝突.
2. 如果你要為自己準備一套常用的函式, 或者自己搭建一個 framework, 那這個方法可以使你的程式碼維護起來更加方便.


看以下程式碼, 名稱空間裡面定義了兩個函式, 將空間命名為 myNamespace, 並聲明瞭 $ 的對外介面. 也就是說, 我們可以在空間外部通過 myNamespace.$ 來呼叫 $ 函式, 但 myMethod 函式只能在空間內部使用. 因為外部呼叫需要通過空間來呼叫, 所以不會和外部函式發生衝突. 變數同理.

(
function
{

// 通過 ID 獲取 Element 物件
function $( id) {
return document.getElementById ( id) ;
}
 
// 顯示對應 ID 的物件的節點型別名字
function myMethod(
id) {
alert ( $( id) .nodeName ) ;
}
 
// 這是對外的介面
window[ 'myNamespace' ] = { }
window[ 'myNameSpace' ] [ '$' ] = $;
} ) ( ) ;

相關推薦

關於javascript名稱空間[]

1. JavaScript 是不會禁止你重複定義函式和變數的, 但他只會使用最後定義的版本, 也就是說, 這將導致前面的失效, 令系統出錯. 比如, $(id) 是最常用的, 也許你會毫不猶豫的在自己的指令碼上定義這個函式, 但是當你用上 prototype, 你就會發現

JavaScript名稱空間、物件列舉

本文是前端學習筆記的第七篇,對應web前端開發JavaScript精英課js的第22課時,本篇主要寫JS如何避免對全域性變數的汙染,以及物件列舉(其實也就是遍歷物件的屬性)   目錄 名稱空間 通過閉包與立即執行函式的方式 物件列舉   名稱空

JavaScript名稱空間

var miaov={}; miaov.common={ getByClass:function() { }, myAddEvent:function() { } }; miaov.fx={ startMove:function() { }, drag:function()

javascript名稱空間的實現

var app = {}; app.namespace = function(name){ var parts = name.split('.'); var current = app; debugger;

C++ 名稱空間namespace【

(轉自:https://blog.csdn.net/touzani/article/details/1637776?utm_source=blogxgwz7) 名稱空間 在C++中,名稱(name)可以是符號常量、變數、巨集、函式、結構、列舉、類和物件等等。為了避免,在大規模程式的設計中,以

深入理解名稱空間

(轉自:https://blog.csdn.net/LF_2016/article/details/51930792?utm_source=blogxgwz1) 一、為什麼使用名稱空間   一個大型的工程往往是由若干個人獨立完成的,不同的人分別完成不同的部分,最後再組合成一個

JavaScript踩坑筆記03---作用域、名稱空間

作用域: 作用域,顧名思義,作用的區域,也就是變數和函式的作用的區域。 作用域的作用就是隔離變數,不同作用域下同名變數不會有衝突。 舉例說明。 // 在函式fn外部定義一個字串 var str = "Hello"; function fn() { // 在函式fn內部再定義一個字串

】XML和Schema名稱空間詳解---例項篇

上文把XML和Schema的名稱空間的一些相關內容進行了詳細介紹,下面通過例子來具體瞭解:     例一:重點理解名稱空間的相關概念。    下面的例子是一個XML Schema檔案,名為"note.xsd" <?xml version="1.0"?>&

】XML和Schema名稱空間詳解

XML和Schema具有無關平臺,技術廠商,簡單,規範統一等特點,極具開放性,所以使用極為廣泛,而且使用簡單,在XML和Schema和,個人認為比較不好理解的一點是其名稱空間問題,在這篇部落格裡詳細進行理解。     名稱空間是W3C推薦標準提供的一種統一命名XML文件中的元素

】C++名稱空間 namespace的作用和使用解析

一、 為什麼需要名稱空間(問題提出)     名稱空間是ANSIC++引入的可以由使用者命名的作用域,用來處理程式中 常見的同名衝突。    在 C語言中定義了3個層次的作用域,即檔案(編譯單元)、函式和複合語句。C++又引入了類作用域

TypeScript與JavaScript不同之處系列(九) ===> 名稱空間, 三斜線指令

本系列目的: 列出TypeScript與JavaScript的不同點, 縮小文件內容, 提高學習速度. 原文件地址: https://www.tslang.cn/index.html Symbol, 迭代器和生成器, 模組與原生js重合度太高不整理 文章目錄

物件序列化:使用System.Xml.Serialization名稱空間

        要使用.NET進行物件的序列化,必須在解決方案中新增System.Xml的引用,並且在類檔案中引入System.Xml.Serialization名稱空間。這樣就可以在檔案中使用序列化所需要的各種特性了。 Imports System.Xml.Seriali

javascript封裝繼承 和 名稱空間,this,屬性表示法介紹

繼承發展史 傳統形式—>原型鏈 過多的繼承了沒用的元素 借用建構函式 不能繼承借用建構函式的原型 每次建構函式都要多走一個函式 共享原型 不能隨便改動自己的原型 聖盃模式有兩種格式 第

Javascript 定義名稱空間,減少全域性變數汙染

建立名稱空間 1、每個js檔案都採取“立即執行函式(IIFE)”來建立名稱空間 2、程式執行時該js檔案只會產生一個全域性變數(object型別) 3、需要對外公佈的屬性和方

11、函數對象、函數的嵌套、名稱空間與作用域

() update 啟動 nbsp money 有效 產生 strip() return 一、函數對象   函數對象,函數是第一類對象,即函數可以當做數據傳遞   具體特點:     1、可以被引用;   1 def foo(): 2 print(‘from fo

名稱空間與作用域

引用 efi 執行 error: 有效 域名 內部 內部函數 沒有 一、名稱空間 名稱空間分三種: 內置名稱空間 Python解釋器自帶的名字,Python解釋器啟動就會生成內置名稱空間 全局名稱空間 文件級別定義的名字(頂頭寫,無縮進),都會存放在全局名稱空間,

day18 函數定義、參數;名稱空間;全局變量及局部變量。

意思 加載 **kwargs 方式 nbsp span 接收 none 默認 Python之路,Day6 = Python基礎6 函數的定義 def func1(): # 定義一個函數,名字叫func1,括號中沒有傳入參數 pri

python基礎之名稱空間和作用域、函數嵌套

空間 dir pri 引用 value log 關系 fun ret 一、名稱空間 1、定義:存放名字與值的綁定關系 2、名稱空間分為:內置名稱空間、全局名稱空間、局部名稱空間 內置名稱空間:python解釋器自帶的名字,python解釋器啟動就會生成 全局名稱空間:文件級

ProtoBuf.js – Protocol Buffers的Javascript實現(

line 解決 進行 序列 blank read tar com json 原文鏈接:ProtoBuf.js – Protocol Buffers的Javascript實現 推薦前端網址:http://keenwon.com/ 在Javascript裏比較常見的數據格式就是

iproute2使用及網絡名稱空間

ron p地址 lis 地址 htm default article erl 1.2 創建一個網絡名稱空間: 相當於創建一個完全隔離的新網絡環境,這個環境包括一個獨立的網卡空間,路由表,ARP表,ip地址表,iptables,ebtables,等等。總之,與網絡有關的組件