gpt4 book ai didi

javascript - 属性值不通过对象字面量定义应用

转载 作者:行者123 更新时间:2023-12-02 23:08:46 26 4
gpt4 key购买 nike

我遇到了最奇怪的问题。我有一个模块,它聚合其他导入的模块并将它们导出到单个对象中。来自导入之一(来自 Person 模块)的所有对象不会应用于“模块”对象的相应属性。来自其他导入的对象确实得到了正确应用。

import { Person, MiniPerson } from './Person';
import { Project, MiniProject } from './Project';

export const models = {
Project: Project, // does get applied properly
MiniProject: MiniProject, // does get applied properly
Person: Person, // does not get applied
MiniPerson: MiniPerson // does not get applied
};

function foo () {
console.log(models); // returns {
Project: someValue, MiniProject: someValue,
Person: undefined, MiniPerson: undefined }
console.log(models.Person); // returns undefined
console.log(Person); // returns a value (import is fine)
models.Person = Person;
console.log(models.Person); // returns a value
}

备注:

1)所有导入的对象都是类似的,并以相同的方式分配给聚合模型,我在其他模块(以及来自 Person 模块的模块)中导入它们时从未遇到过任何问题。

2) Person import 形式的对象似乎已正确导入 - 当我运行 foo 函数时,它们有一个值,但“models”的相应属性未定义。但是,该属性本身确实存在(当记录“models”对象(或 Object.keys(models) 时),但其值只是未定义!

3)如果我再次将该属性分配给 foo 函数中的“models”对象,它确实会被很好地分配并且不再返回未定义。

4)我尝试重新启动计算机,创建新文件,但没有改变任何内容。

可能是什么原因?还有哪里可以看?我可以使用一些“init”函数作为解决方法,但我想避免这种情况。

最佳答案

造成这种行为的最可能原因是该模块和 Person 模块之间的循环依赖。解决此问题的一般方法是将共享依赖项提取到单独的文件中。

关于javascript - 属性值不通过对象字面量定义应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57462889/

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