我创建了一个JavaScript对象,但如何确定该对象的类呢?

我想要一些类似Java的.getClass()方法.

推荐答案

在JavaScript中没有与Java的getClass()完全对应的语言.这在很大程度上是因为JavaScript是prototype-based language,而Java是class-based.

根据您需要getClass()的内容,JavaScript中有几个选项:

举几个例子:

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参数,可以使用gulpgrunt将其设置为false.

Javascript相关问答推荐

为什么在集内和集外会产生不同的promise 状态(使用Promise.race)?

不渲染具有HTML参数的React元素

序列查找器功能应用默认值而不是读取响应

Redux工具包查询(RTKQ)端点无效并重新验证多次触发

如何解决CORS政策的问题

Google图表时间轴—更改hAxis文本 colored颜色

在拖放时阻止文件打开

如何从网站www.example.com获取表与Cheerio谷歌应用程序脚本

编辑文本无响应.onClick(扩展脚本)

当id匹配时对属性值求和并使用JavaScript返回结果

SPAN不会在点击时关闭模式,尽管它们可以发送日志(log)等

无法避免UV:flat的插值:非法使用保留字"

当标题被点击时,如何使内容出现在另一个div上?

使用Document.Evaluate() Select 一个包含撇号的HTML元素

如何组合Multer上传?

本地损坏的Java脚本

谷歌饼图3D切片

在高位图中显示每个y轴系列的多个值

使用python,我如何判断一个html复选框是否被隐藏,以及它是否被S选中?

在HTML中使用meta标记来指定定制元数据以用于使用JavaScript进行检索是不是一个坏主意?