参数的解构赋值我加了{headers : 11}怎么没赋值上呢?

来源:2-11 函数的参数

Bruce_Ly

2020-12-12

function ajax(url, {
body = ‘’,
method = ‘GET’,
headers
} = {headers : 11}){
console.log(body,method,headers)
}

ajax(‘http://www.imooc.com’,{ body: ‘body’})
为什么headers打印出来的不是11,这个解构赋值不对吗?

写回答

1回答

谢成

2020-12-12

从这个问题中能看出,应该是对于函数参数并没有真的理解。

{
body = ‘’,
method = ‘GET’,
headers
} = {headers : 11}

上面这段代码是函数的参数的代码,等号右边相当于是默认值,也就是对于等号左边整个对象的默认值,这个是函数参数的默认值,并不是解构赋值。


比如这样调用:

ajax('http://www.imooc.com')

ajax不传递第二个参数,就会取默认值 {headers : 11}


0
0

JavaScript ES(6-11)全版本语法 前端都需要的基础课

前端无门槛学习,从ES6到ES11,一套课程掌握JS最新语法

1328 学习 · 296 问题

查看课程