为什么即使参数作为命名参数传递,参数的顺序也保持不变?在 JavaScript 中 [英] why order of parameter remain same even arguments are passed as named arguments? in javascript

查看:60
本文介绍了为什么即使参数作为命名参数传递,参数的顺序也保持不变?在 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆