2016-01-23 29 views
3

當我在JavaScript中定義一個名稱空間時,Netbeans給出了一個全局變量,但我認爲它不應該聲明爲錯誤。爲什麼是這樣?
示範代碼:JS名稱空間Netbeans變量未聲明

var MyNamespace = new function() { 
    var MyClass = function() {}; 
    MyClass.SOME_CONSTANT = 9; // MyClass not defined 
    this.MyClass = MyClass; // MyClass not defined 
}; 

我檢查和這個代碼在IE(原稿模式IE 5)和邊緣13的代碼是一個模塊模式像語法像this答案。

編輯:首先聲明一個變量可能是沒用的,因爲名字空間內的函數有時候會改變局部變量而不是公共名字空間中的那個,對嗎?不過,我想知道爲什麼Netbeans給我一個錯誤。

回答

6

您可以在頂部添加一條評論,告訴Netbeans忽略錯誤。 例如採用了棱角分明的時候

/* global angular */ 

將防止對事物的錯誤,如

angular.module('Module', []); 
+0

那麼,是不是在Netbeans的錯誤?我的意思是,我在錯誤之前將變量(class)聲明爲行,所以它應該在範圍中可用,對吧? (後來通過'MyNamespace.MyClass') – SWdV