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

在通过构造函数创建的对象中未定义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对象的位置插入一堆变量时,它仍然显示未定义。有人请帮忙! 问题答案: 您的类中没有默认的构造函数定义。 当您提供至少一个参数化构造函

  • 已经给出了所有的DTO@data、@noargsconstructor、@allargsconstructor,所以理想情况下所有的构造函数都应该可用。 我已经尝试用新旧版本的Spring tool suite和更改的lombok jar来构建这个项目。但同样或不同的错误仍在出现。 用STS4和STS 3.9.7尝试,3.9.8同样的问题即将到来。尝试龙目岛1.16.22、1.18.0、1.18.