gpt4 book ai didi

Javascript动态选择构造函数,这是不正确的吗?

转载 作者:行者123 更新时间:2023-12-03 12:18:21 24 4
gpt4 key购买 nike

我正在尝试根据声明的类型动态创建对象。这段代码似乎有效,但我觉得我可能会让自己在未来遭遇巨大的失败。

我想问题是 - 这是好的代码吗?如果不是,为什么不呢?

//TypeA and TypeB are constuctor functions declared elsewhere which take data objects, omitted here for clarity.
var constructorMapping = { 'typeA': TypeA, 'typeB': TypeB };

function convertToObject( type, dataObject) {
var selectedConstructor = constructorMapping[type];
if ( !selectedConstructor ) {
return false;
}
return new selectedConstructor(dataObject);
}

var typeAObject = convertToObject("typeA", {name: "asdf"});

最佳答案

看起来不错,假设所有 TypeA/TypeB/… 构造函数都采用这样的 dataObject 作为参数。

但是,我不会返回false。要么抛出错误,要么返回null。另外,您只需检查 selectedConstructor 是否为真,如果您愿意,您可以使该检查更加严格:

function convertToObject(type, dataObject) {
if (!constructorMapping.hasOwnProperty(type)) return null;
var selectedConstructor = constructorMapping[type];
if (typeof selectedConstructor != "function") return null;
return new selectedConstructor(dataObject);
}

关于Javascript动态选择构造函数,这是不正确的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24572150/

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