为什么即使参数作为命名参数传递,参数的顺序也保持不变?在 JavaScript 中 [英] why order of parameter remain same even arguments are passed as named arguments? in javascript
本文介绍了为什么即使参数作为命名参数传递,参数的顺序也保持不变?在 JavaScript 中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
例如在python中:
def dfde(name,age):打印(年龄)打印(名称)打印(年龄)dfde(age=27,name="dfd")
将给出如下输出:
27dfd27
但同样的东西在 javascript 中会给出如下输出:
let dfde = function(name, age){控制台日志(年龄);控制台日志(名称);控制台日志(年龄);}dfde(age=27, name="dfd")
将输出为:
dfd27dfd
<块引用>
偶数参数作为命名参数传递,
这是为什么?
解决方案
偶数参数作为命名参数传递,
没有命名参数.
dfde(age = 27, name = "dfd")
等同于:
dfde(27, "dfd")
(另外 age = 27
创建一个新的全局变量 age 并为其赋值)
要在 js 中使用诸如命名参数之类的东西,您必须传递一个对象文字并对其进行解构:
function dfde({name, age}) {控制台日志(姓名,年龄);}dfde({ name: "dfd", 年龄: 27 });//和...一样dfde({ 年龄: 27, 姓名: "dfd" });
for example in python:
def dfde(name,age):
print(age)
print(name)
print(age)
dfde(age=27,name="dfd")
will give a output as:
27
dfd
27
but samething in javascript will give the output as:
let dfde = function(name, age){
console.log(age);
console.log(name);
console.log(age);
}
dfde(age=27, name="dfd")
will give output as:
dfd
27
dfd
even arguments are passed as named arguments,
why is that?
解决方案
even arguments are passed as named arguments,
There are no named arguments.
dfde(age = 27, name = "dfd")
is the same as:
dfde(27, "dfd")
(Additionally age = 27
creates a new global variable age and assigns the value to it)
To use something like named arguments in js you have to pass an obiect literal and deconstruct that:
function dfde({name, age}) {
console.log(name, age);
}
dfde({ name: "dfd", age: 27 });
// Same as
dfde({ age: 27, name: "dfd" });
这篇关于为什么即使参数作为命名参数传递,参数的顺序也保持不变?在 JavaScript 中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文