我创建了一个 JavaScript 对象,但是如何确定该对象的类?
我想要类似于Java的.getClass()方法的东西。
.getClass()
getClass()在 JavaScript 中没有与 Java 完全相同的对应物。这主要是因为 JavaScript 是一种基于原型的语言,而 Java 是一种基于类的语言。
getClass()
根据您的需要getClass(),JavaScript 中有几个选项:
typeof
instanceof
obj.
constructor
func.
prototype
proto
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。
--mangle