我创建了一个JavaScript对象,但是我如何确定该对象的类?
我想要类似于Java的.getClass()方法.
我们来看下面的示例代码:
var ns = {}; // Some namespace
ns.Test = function()
{
// Constructor of class Test
};
var inst = new ns.Test();
var className = hereIsTheMagic(inst); // Must return "ns.Test"
Run Code Online (Sandbox Code Playgroud)
所以我在命名空间'ns'中创建了一个名为'Test'的类,并且这个类的实例名为'inst'.现在我想找出班级名称.我怎样才能做到这一点?
到目前为止,我通过为每个类提供一个带有类名的字符串属性来解决这个问题,因此我可以使用它inst.constructor.className来访问类名.但是如果可能的话,我想停止这样做,因为在复制/粘贴类时它很容易出错.
如果没有适用于所有当前浏览器的解决方案,可能在未来的ECMAScript规范中至少有一些新功能可以提供对类名的访问?