gpt4 book ai didi

javascript - 确定 JavaScript 对象实例类的名称

转载 作者:行者123 更新时间:2023-11-29 16:18:33 26 4
gpt4 key购买 nike

想象一个 JavaScript“类”Foo:

var Foo = function()
{
};

以及该类的一个实例:

var foo = new Foo();

我可以直接从实例 foo 中获取字符串 Foo 吗,或者 Foo 只是一个不能与实例关联的传递变量foo 实例化后?


编辑 1 SLaks suggests使用 foo.constructor。这给出:

function ()
{
}

如果以以下形式定义函数,则此方法有效:

function Foo()
{}

...但情况可能并非总是如此。


编辑 2 尝试 skizeey's approach也不起作用。它本质上是 Slack 方法更完整的尝试,但会产生一个空字符串:""


EDIT 3 我想知道这是否真的可行。请注意来自 Chrome 的 JavaScript 控制台的以下文字记录:

> var Foo = function() {}
undefined
> var foo = new Foo();
undefined
> foo
Foo

在最后一行,Chrome 清楚地知道对象是Foo 类型。然而,这可能只是 Chrome 的事情,而不是标准的 JavaScript,甚至无法从语言本身访问。

最佳答案

使用命名函数:

> var Foo = function Foo(){};
> undefined
> var foo = new Foo();
> undefined
> foo.constructor.name
> "Foo"

使用未命名函数:

> var Foo = function (){};
> undefined
> var foo = new Foo();
> undefined
> foo.constructor.name
> ""

关于javascript - 确定 JavaScript 对象实例类的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12994233/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com