Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript函数中({quot;key";:“value";}={})语法意味着什么_Javascript_Node.js_Function - Fatal编程技术网

在JavaScript函数中({quot;key";:“value";}={})语法意味着什么

在JavaScript函数中({quot;key";:“value";}={})语法意味着什么,javascript,node.js,function,Javascript,Node.js,Function,我正在学习JavaScript课程(特别是MongoDB大学M220JS课程),在其中一项任务中,我遇到了类内函数声明的语法: static async getMovies({ filters = null, page = 0, moviesPerPage = 20, } = {}) { // some code, e.g. console.log(moviesPerPage) } 他们定义了一些JSON对象,然后在参数列表中写入“={}”。然后在函数内部使用变量

我正在学习JavaScript课程(特别是MongoDB大学M220JS课程),在其中一项任务中,我遇到了类内函数声明的语法:

static async getMovies({
   filters = null,
   page = 0,
   moviesPerPage = 20,
} = {}) {
   // some code, e.g.
   console.log(moviesPerPage)
}
他们定义了一些JSON对象,然后在参数列表中写入“={}”。然后在函数内部使用变量(如我所示),就像它们被声明为默认参数一样,如下所示:

static async getMovies(filters = null, page = 0, moviesPerPage = 20) {
   // some code, e.g.
   console.log(moviesPerPage)
}

第一个示例中的语法是什么意思?
={}
部分的意义是什么?

它们没有定义JSON对象

第一个函数需要一个对象作为参数,它使用对象分解来获得实际的命名属性

现在,如果您在没有参数的情况下调用对象,那么第一个参数将是
undefined
,这就是将被分解的内容。但是您不能对未定义的
进行解构,因此您将默认值设置为
{}

第一个示例中的语法是什么意思

使用的语法是和的组合

“={}”部分的意义是什么

使用:the
'={}'
零件集
{}
(空对象)作为
getMovies

让我们把它分解一下:

在这里,我们将
'flying'
设置为
power
参数的默认值

function-giveSuperPower(power='flying'){
log(`youhave:${power}`);
}
赋予超级大国(“无限能量”);
//你有“无限能量”
给予超级大国();
//你有“飞行”
如果参数是一个对象呢

功能超能力(power){
log(`youhave:${power.name | |'flying'}`);
log(`it last for${power.duration | |'∞'}min`);
}
给予超级大国({名称:'力量',持续时间:5});
//你有“力量”
//持续5分钟
看起来不错,对吗? 让我们试试

giveSuperPower();
//未捕获引用错误:未定义电源
好吧,这是个问题

用于设置默认参数值(空对象)

function-giveSuperPower(power={}){
log(`youhave:${power.name | |'flying'}`);
log(`it last for${power.duration | |'∞'}min`);
}
给予超级大国();
//你有“飞行”
//它能持续多久∞闵
让我们分解power
power
参数

函数赋予超级能力({name,length}={}){
log(`youhave:${name | |'flying'}`);
log(`it last for${duration | |'∞'}min`);
}
让我们为
name
length

函数赋予超级能力({name='flying',length='∞'} = {}){
log(`youhave:${name}`);
log(`it last for${duration}min`);
}

就是这样:)

这个函数声明告诉您的是,函数getMovies希望接收一个具有该结构的对象作为参数。例如:

var movieProperties={
过滤器:“a”,
页码:2
};
getMovies(电影财产);
在函数执行期间,它将获取movieProperties对象,并将其值传播到函数上的属性(过滤器、页面、moviesPerPage)。在此分发过程中,它将验证每个属性。例如,如果您不传递moviesPerPage属性,它将创建一个并将值设置为20

函数getMovies({filters=null,page=0,moviesPerPage=20}={}){ 调试器; //一些代码,例如。 控制台日志(过滤器); 控制台日志(第页); 控制台日志(moviesPerPage); } /*将输出*/ //“a” // 2 // 20
此外,如果您传递一个空对象,它将使用默认值创建每个属性。如果您定义了“={}”,您也可以不向函数传递任何内容,它将创建整个对象,然后创建属性

getMovies({});
//或
获取电影();
/*将输出*/
//空的
// 2
// 20

我希望有意义。新年快乐:)

这意味着同样的事情,
={}
意味着参数的默认值是空对象。