javascript - 如何在自定义对象上指定 .constructor.name?

标签 javascript object constructor instance instanceof

这个问题确实相当简单,但我无法通过 google 或 duckduckgo 找到答案,可能是因为 99% 的初学者教程都涉及创建一个具有 name 属性的 Person 对象(这与 constructor.name 无关,但会污染搜索结果)。

Object 的实例可以使用 instance.constructor.name 检测对象:

var foo = new Object;
foo.constructor.name; // "Object"

如何在我自己的对象上设置构造函数名称?

var Bar = function(){};
var baz = new Bar;
baz.constructor.name // "" <- Empty string

最佳答案

除了将构造函数定义为设置为匿名函数的变量 Bar 之外,您还可以这样做:

function Bar() {}

或者这个:

var Bar = function ConstructorNameHere() {};

ConstructorNameHere 名称实际上又可以是 Bar:

var Bar = function Bar() {};

(这应该适用于 Chrome 和 FF,不确定但对 IE 不抱太大希望。)

关于javascript - 如何在自定义对象上指定 .constructor.name?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17169335/

相关文章:

javascript - 在 if 语句中检查 "undefined"时出现 "undefined"错误

javascript - 灯箱画廊串联起来

Python:将对象保存在文件中

javascript - 在对象数组中交换属性值的有效方法

javascript - jQuery/JavaScript 如何处理绑定(bind)到同一元素和事件的多个事件处理程序,结果是什么?

javascript - 通过路由发送参数

javascript - JS : Objects into array

c++ - 覆盖默认的构造函数/析构函数而不实现它们

java - Java中Instant类的构造函数?

Java - 无法识别构造函数方法