关于javascript的命名空间[转]
2010-07-19 18:21
288 查看
1. JavaScript 是不会禁止你重复定义函数和变量的, 但他只会使用最后定义的版本, 也就是说, 这将导致前面的失效, 令系统出错.
比如, $(id) 是最常用的, 也许你会毫不犹豫的在自己的脚本上定义这个函数, 但是当你用上 prototype, 你就会发现, 它和
prototype 的函数冲突, 并导致你的页面跑不动了. 怎么办? 这时候就需要命名空间了. 我发布的主题里面的 JavaScript
都有用命名空间包起来的, 我这么做就是为了防止和某些插件的代码发生冲突.
2. 如果你要为自己准备一套常用的函数, 或者自己搭建一个 framework, 那这个方法可以使你的代码维护起来更加方便.
看以下代码, 命名空间里面定义了两个函数, 将空间命名为 myNamespace, 并声明了 $ 的对外接口. 也就是说,
我们可以在空间外部通过 myNamespace.$
来调用 $ 函数, 但 myMethod
函数只能在空间内部使用. 因为外部调用需要通过空间来调用, 所以不会和外部函数发生冲突. 变量同理.
比如, $(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模块化和命名空间管理的问题说明
- 关于Javascript模块化和命名空间管理
- 关于Javascript模块化和命名空间管理
- 关于Javascript模块化和命名空间管理
- 关于Javascript模块化和命名空间管理
- 关于Javascript模块化和命名空间管理
- 关于Javascript模块化和命名空间管理
- 关于Javascript模块化和命名空间管理的问题说明
- 关于Javascript模块化和命名空间管理
- 关于Javascript模块化和命名空间管理
- 关于JavaScript命名空间的一些心得
- 关于Javascript模块化和命名空间管理的问题说明
- 关于Javascript模块化和命名空间管理
- 关于Javascript模块化和命名空间管理javascript
- 关于Javascript模块化和命名空间管理
- 关于javascript模块和命名空间(Module and namespace)
- 关于Javascript模块化和命名空间管理
- 关于Javascript模块化和命名空间管理
- 关于Javascript模块化和命名空间管理
- 关于JavaScript命名空间的一些心得