我想確定在JavaScript中生成類名稱的規則。我貼這個腳本到Chrome瀏覽器開發工具控制檯:如何在Chrome開發工具中爲自定義類計算javascript類名稱?
var obj = {
Constr : function() { }
};
var obj2 = obj;
console.log(new obj.Constr());
console.log(new obj2.Constr());
obj2.Constr2 = function() { };
console.log(new obj.Constr2());
console.log(new obj2.Constr2());
而且這裏的結果在控制檯:
obj.Constr
obj.Constr
obj2.Constr2
obj2.Constr2
看來,類的名稱是由變量確定的構造函數最初被分配到。我正在尋找CDT用來生成這個名字的準確規則。此外,這與Google Closure Compiler可識別的名稱相同嗎?
我試圖看看我是否可以在Firebug中重現類似的行爲,但我似乎無法獲得在控制檯中打印出來的類名稱。作爲第二個問題,有沒有人知道如何在螢火蟲中看到這個?
所以,正如我擔心的那樣,CDT打印的名字並不來自ecmascript規範。這對開發人員來說只是一種調試方便。我對JavaScript相當陌生,我一般都喜歡原型風格,但是我發現像dojo和extjs這樣的圖書館試圖用OO風格的編程來解決問題讓人失望。我認爲這混淆了Javascript的一個更好的功能。 –
Javascript是一種_very_ OO語言,實際上它非常靈活。有很多庫在Javascript的基礎上構建了一個典型的基於類的OO,並且通常工作得很好。對於這些庫或Javascript本身來說,這不一定是壞事。 – lanzz