我想确定在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