gpt4 book ai didi

javascript - 在 JavaScript 中可以通过哪些方式将参数传递给函数?

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

从 Python 转向一些基于 JavaScript 的 API,我对一些语法感到困惑。我无法在有关声明函数的所有随机信息的噪音中找到答案。

在 Python 中,您可以根据顺序和名称混合指定函数参数:np.arange(1,5,step = 5)

你能用 JavaScript 做类似的事情吗?

如果有这样的函数:ee.List.sequence(start,结束、步骤、计数)它只需要四个参数中的三个,我可以很容易地指定开始、结束、步骤,如下所示:ee.List.sequence(1,100,2)

但是,我必须使用对象表示法来指定计数吗?ee.List.sequence({start=1,end=100, count=50})

有没有像Python那样的简写,比如:ee.List.sequence(1,100,{count=50})或者ee.List.sequence(1,100,,50)

最佳答案

看来您真正要问的并不是 JavaScript 作为一种语言,而是更多的是特定的 API。因此,这里有一些需要了解的事情:

在 JavaScript 中,所有参数都是可选的。换句话说,没有办法强制使用适当数量或顺序的参数来调用函数。调用者需要知道其调用的函数的签名并适本地调用它。函数的创建者还需要准备好不传递部分或全部参数。所有函数都有一个类似于数组的对象,可以帮助实现这一点,但检查输入也非常容易。这是一个例子:

// Here's an example of a function that does not explicitly declare any arguments
function foo1(){
// However, arguments might still be passed and they can be accessed
// through the arguments object:
console.log("Arguments.length = ", arguments.length);
console.log(arguments);
}

foo1("test", "boo!"); // Call the function and pass args even though it doesn't want any

// ***********************************************

// Here's an example of a function that needs the first arg to work,
// but the seond one is optional
function foo2(x, y){
if(y){
console.log(x + y);
} else {
console.log(x);
}
}

foo2(3);
foo2(4, 5);

在 JavaScript 中,您的函数可以采用任何有效的原语或对象。同样,调用者需要了解 API 是什么并正确调用它:

function foo1(string1, number1, object1, string2){
console.log(arguments);
}

foo1("test", 3.14, {val:"John Doe"}, "ing");

关于javascript - 在 JavaScript 中可以通过哪些方式将参数传递给函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60582031/

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