我创建了一个 JavaScript 对象,但如何确定该对象的类?
我想要类似于 Java 的 .getClass()
方法的东西。
最佳答案
没有与 Java 的 getClass()
完全对应的版本。在 JavaScript 中。这主要是因为 JavaScript 是 prototype-based language ,而不是 Java 是 class-based一个。
根据您需要 getClass()
的用途,JavaScript 中有几个选项:
-
typeof
-
instanceof
obj.
constructor
功能。
prototype
,原型(prototype)
。isPrototypeOf
几个例子:
function Foo() {}
var foo = new Foo();
typeof Foo; // == "function"
typeof foo; // == "object"
foo instanceof Foo; // == true
foo.constructor.name; // == "Foo"
Foo.name // == "Foo"
Foo.prototype.isPrototypeOf(foo); // == true
Foo.prototype.bar = function (x) {return x+x;};
foo.bar(21); // == 42
注意:如果您使用 Uglify 编译代码,它将更改非全局类名。为了防止这种情况,Uglify 有一个 --mangle
可以设置为 false 的参数正在使用 gulp或 grunt .
关于javascript - 如何获取 JavaScript 对象的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1249531/