在JavaScript中没有与Java的getClass()
完全对应的语言.这在很大程度上是因为JavaScript是prototype-based language,而Java是class-based.
根据您需要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
参数,可以使用gulp或grunt将其设置为false.