JavaScript实现命名空间(绑定在jQ)
不支持命名空间一直是JS开发里比较严重的问题。不过大家想出了各种手段来绕过这个坎,比如YUI的namespace。可惜的是jQuery尚未提供一个合适的解决方案,不过这并不难,可以人肉给它添加这个方法。稍加搜索,找到两个地址介绍此方法,附在最后。
先上代码:
// 把生成命名空间的方法绑定在jQuery上
jQuery.namespace = function() {
var a=arguments, o=null, i, j, d;
for (i=0; i<a.length; i=i+1) {
d=a[i].split(".");
o=window;
for (j=0; j<d.length; j=j+1) {
o[d[j]]=o[d[j]] || {};
o=o[d[j]];
}
}
return o;
};
// 接着就可以使用此方法来定义命名空间了
jQuery.namespace( 'jQuery.debug' );
jQuery.debug.test1 = function()
{
alert( 'test1 function' );
};
jQuery.debug.test2 = function()
{
alert( 'test2 function' );
};
// usage
jQuery.debug.test1();
jQuery.debug.test2();
将上面这段js保存成jQuery.namespace.js,放在和jQuery一个目录里,以后写项目的时候就可以随时用到了。
最后附上原文链接:
Is it possible to create a namespace in jQuery?
Namespacing outside of theYAHOO Namespace
相关文章
【视频教程】技术栈大升级:Vue3 到 Nuxt3(4)深入理解 SSR 和 `useAsyncData`
2023 年,我个人最大的变化,是从 Vue3 SPA 应用向 Nuxt3 SSR 应用过渡,在预期可能存在 […]
2024-06-102 分钟
使用 `postMessage` 跨域名迁移 `localStorage`
朋友的网站有个需求:要从 A 域名迁移到 B 域名。所有内容不变,只是更改域名。这个需求不复杂,理论上改下配置 […]
2023-02-127 分钟
在 Code.fun 做 Code Review(四)
时光如梭,一晃 2022 年已经过去 2/3,我们一起迎来 9 月。秋风送爽,丹桂漂亮,下面,我们一起回顾 8 […]
2022-09-036 分钟


