gpt4 book ai didi

Javascript 处理带有命名参数和普通参数的调用函数

转载 作者:行者123 更新时间:2023-11-29 10:24:39 36 4
gpt4 key购买 nike

如果我有这个功能:

function(foo, bar, baz);

而且我想允许命名参数和普通函数调用,处理这个问题的最佳方法是什么?在 php 中,您可以将变量提取到本地 namespace 中,但据我所知,在 javascript 中处理此问题的唯一方法是分别处理这两种情况。我在下面给出了一个代码示例:

function(foo, bar, baz)
{
if(typeof(foo) == 'object') // Named args
{
alert(foo.foo);
alert(foo.bar);
alert(foo.baz);
}
else
{
alert(foo);
alert(bar);
alert(baz);
}
}

myFunc('a', 'b', 'c');
myFunc({ foo: 'a', bar: 'b', baz: 'c' });

有没有 javascript 大师可以教我 javascriptFu 的方法?

最佳答案

由于您无法动态访问本地范围(没有邪恶的 eval),您应该考虑以下方法:

var myFunc = function (foo, bar, baz) {
if (typeof(foo) === 'object') {
bar = foo.bar;
baz = foo.baz;
foo = foo.foo; // note: foo gets assigned after all other variables
}

alert(foo);
alert(bar);
alert(baz);
};

您只需手动将命名参数转换为常规变量。之后,您的代码将在两种情况下运行而无需更改。

关于Javascript 处理带有命名参数和普通参数的调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4162900/

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