我们知道,javascript遇到同名的方法时不会报错,当两个程序员写了两个名称完全一样的方法,如:
function hello() {
alert('程序员A的方法');
}
function hello() {
alert('程序员B的方法');
}
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
var myNamespace = {};
// 在此命名空间下声明方法
myNamespace.hello = function() {
alert('命名空间myNamespace下的hello');
}
function hello() {
alert('没有命名空间的hello');
}
// 调用
myNamespace.hello(); // 结果:命名空间myNamespace下的hello
hello(); // 没有命名空间的hello