当前位置: 首页 > 知识库问答 >
问题:

在通过构造函数创建的对象中未定义DefineProperty方法

方斌
2023-03-14

我有一个用于父级的构造函数:

function genshinImpactCharacter(weapon, vision, rarity) {
    this.weapon = weapon;
    this.vision = vision;
    this.rarity = rarity;
}

稍后,我使用new关键字创建一个对象:

const Sucrose = new genshinImpactCharacter('Catalyst', 'Anemo', 4);

我正在尝试使用defineProperty添加属性FavFlower:“Sweet Flower”

Object.defineProperty(Sucrose, "favFlower", {
    name: 'Sweet Flower',
});

但是,当我试图访问favflower时,它返回undefined。同样,当我在控制台中打印整个对象时,该属性仍然保持undefined

我错在哪了?

共有1个答案

苍烨然
2023-03-14

您需要使属性enumerable(默认为false)在检查对象时看到它。您还希望设置属性的value,而不是name:

null

js prettyprint-override">function genshinImpactCharacter(weapon, vision, rarity) {
    this.weapon = weapon;
    this.vision = vision;
    this.rarity = rarity;
}

const Sucrose = new genshinImpactCharacter('Catalyst', 'Anemo', 4);

Object.defineProperty(Sucrose, 'favFlower', {
    value: 'Sweet Flower',
    enumerable: true,
});

console.log(Sucrose);
 类似资料:
  • 我试图让类circle扩展Shape类,但JUnit不断出错,说构造函数圆(Point,int)未定义,我如何定义圆构造函数与公共圆(Point[]center,int aradius)不同? 圆圈Java语言

  • 在.citydoor.imports.catalog.tools中打包;

  • 问题内容: 所以我有一个名为User的Java类,其中包含如下构造函数: 然后他的问题发生在我的另一个名为Admin的类中: 我收到了错误消息,我不知道该如何解决,我对Java真的很陌生。 问题答案: 您必须使用扩展类的构造函数的第一个类调用构造函数,方法是: 如果您还希望Admin也具有自定义构造函数,则必须调用: 所以:

  • 我在弄清楚如何根据给定的类型在构造函数中创建一个新对象时遇到了困难。 例如,我有一个机器人驱动程序,它有一个默认构造函数,不接受任何参数,并创建一个基本的机器人。但我有另一个构造器,根据这个论点创造了一个新的机器人。 是一个接口。那么,如果我想创建,使其是另一种类型,比如?我需要做一些类型的铸造吗?

  • 问题内容: 我已经加载了内容模块,我得到的具体错误是: 有什么想法吗?我是从以下教程中获得的:http : //developer.android.com/guide/topics/ui/notifiers/notifications.html 问题答案: 更改此: 至 发生错误是因为在这种情况下,它引用的实例,但构造函数需要一个。您必须传递的上下文是对活动本身的引用,因此您必须使用显式访问它。

  • 问题内容: 好的,我正在做学校的作业,我设置了我的主班和另一个名为“交易”的班。在我的主班我有: 带下划线的交易:表示构造函数未定义。为什么?! Transaction类如下所示: 看起来它应该可以工作,但事实并非如此。即使当我在main中创建新Transaction对象的位置插入一堆变量时,它仍然显示未定义。有人请帮忙! 问题答案: 您的类中没有默认的构造函数定义。 当您提供至少一个参数化构造函