我在EaselJS庫的例子中看到了這段代碼 - 它所做的是將整個createjs庫的命名空間分配給「window」。將Javascript命名空間設置爲窗口:壞主意?還是輝煌?
<script>
var createjs = window;
</script>
我的問題是這樣的: 樹立了一個庫窗口真正愚蠢的想法的命名空間?難道它不是通過使所有名稱空間變量突然變成全局作用域來擺脫使用名稱空間的重點嗎?
我能看到的唯一優點是可以讓你爲對象編寫較短的構造器。例如打字:中
stage = new Stage(canvas);
代替:
stage = new createjs.Stage(canvas);
這是一個壞主意,或者是莫名其妙的輝煌,或者只是無害古怪?
它可以讓你改變'createjs'的範圍。我從來沒有真正看到過這樣做。 – Blender
如果不是全球性的,你還要如何揭露它? –
@ user1689607 - 它的一個命名空間。我的理解是你不想將它作爲一個全局對象來公開。這就是它存在的原因。減少變量命名衝突的變化。但我不確定:因此,這個問題。 –