gpt4 book ai didi

javascript - 如何在对象内联定义中复制项目?

转载 作者:行者123 更新时间:2023-11-28 14:45:14 25 4
gpt4 key购买 nike

我是一个名为 Duckuino 的项目的合作者,模块通过 eval() 加载,并执行另一个文件的内容,其中包含 new Object() ,我想为项目创建别名,以避免重复代码两次,如下所示:

new Object({
commands: {
aVeryComplexCommand: function(WithParams) {
// Complex content
},
anAliasForTheCommand: //something which point to 'aVeryComplexCommand'
}
});

请注意,我无法将代码放在 new Object() 声明之后,因为它可能会被 eval() 误解,而且我不想这样做修改加载模块的代码,因为别名是特定于模块的。

提前致谢!

编辑:Pointy 和 Nathan P. 的答案都有效,因此我将与我的其他合作者讨论该问题,并验证我们使用的答案。

最佳答案

您必须使用单独的语句:

new Object(function() {
var obj = {
commands: {
aComplexCommand: { ... }
}
};
obj.commands.alias = obj.commands.aComplexCommand;
return obj;
}());

这是有效的 JavaScript,但我不能说这是否会混淆您的 eval() 机制。

关于javascript - 如何在对象内联定义中复制项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46608056/

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