我不明白这两个功能之间的区别:
function animal({ cat }){
return cat
}
function animal(cat){
return cat
}
为什么要一个使用另一个?有优势吗?
答案 0 :(得分:0)
第一个函数将从使用destructuring assignment传入的对象中返回属性Times value
05-03-2018 09:00:00 1
05-03-2018 09:01:26 2
05-03-2018 09:02:00 0
05-03-2018 09:03:00 0
05-03-2018 09:04:28 1
05-03-2018 09:05:00 0
05-03-2018 09:06:00 0
05-03-2018 09:07:05 2
05-03-2018 09:08:00 0
05-03-2018 09:09:05 1
。第二个将返回完整的对象cat
,它是传入的对象。
例如,第一个功能等效于:
cat
意味着,当您调用function animal(catObj){
return catObj.cat;
}
时,您将经过一个对象,其中包含属性animal()
。
例如:
cat
因此,如果我们在看第一个函数,它将提取const myCatObj = {
cat: true,
dog: false,
name: "Meow"
}
animal(myCatObj); // retruns true
属性并返回cat
。
您的第二个函数将仅返回传递给该函数的整个对象。因此,如果我们通过true
,我们将在myCatObj
中获得与输出相同的内容。
因此,为回答您的问题,两者均用于执行不同种类的功能,因此它们在某些情况下各有优势。
答案 1 :(得分:-1)
调用这两个函数
animal({cat:9});
返回9
animal(9);
返回undefined
,因为数字9没有cat属性(在js中一切都是对象)
当我们想了解对象的cat属性时,我们使用第一个函数
当我们想直接调用一个对象时,我们使用第二个