JS 命名空间

来源:互联网 发布:淘宝差评什么时候消失 编辑:程序博客网 时间:2024/05/17 05:58
 

我们知道,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