一直在阅读Addy Osmani 的Javascript 设计模式,在文档中,这个简单的分配用于“防止覆盖已经存在的对象/命名空间”:
var myNS = myNS || function() {};
所以我知道如果它已经存在,它会将相同的对象分配给变量,或者如果它(理想情况下)不存在则创建一个空对象。所以假设我向这个对象的原型添加了一个方法,但是一个已经存在的、同名的对象已经有一个同名的方法输出“嗨!”。以下应该发生,对吧?
myNS.prototype.sayHello = function() { return 'Hello!' };
myNS.sayHello(); // Hello! ??
原来myNS.sayHello() // Hi!
的仍然被覆盖,不是吗?那么,在这种情况下,条件变量赋值做什么,除了添加一级名称冲突避免?还是我完全错了?