您的位置:首页 > Web前端 > JavaScript

关于javascript的命名空间[转]

2010-07-19 18:21 288 查看
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'
]
[
'$'
]
=
$;

}
)
(
)
;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: