让javascript方法也拥有命名空间

我们知道,javascript遇到同名的方法时不会报错,当两个程序员写了两个名称完全一样的方法,如:

function hello() {
    alert('程序员A的方法');
}
function hello() {
    alert('程序员B的方法');
}

假 如在我们不知道的情况下,在同一个页面引用了两个相同的叫做hello的方法,其中一个是程序员A写的,另一个是程序员B写的,在这种情况下,页面调用的 究竟是哪一个程序员写的hello方法呢?答案是:都有可能!那么怎样可以避免这种情况,精确调用目标方法呢?我们知道C#中有 namespace,java有package……,那么javascript呢?当然也有,接下来就是你想要的答案了!

// 声明一个命名空间
var myNamespace = {};

// 在此命名空间下声明方法
myNamespace.hello = function() {
    alert('命名空间myNamespace下的hello');
}

function hello() {
    alert('没有命名空间的hello');
}

// 调用
myNamespace.hello(); // 结果:命名空间myNamespace下的hello
hello(); // 没有命名空间的hello
posted @ 2011-05-13 14:26  ChaunceyHao  阅读(234)  评论(0)    收藏  举报