Javascript参数格式
我不理解这两种功能之间的区别:Javascript参数格式,javascript,ecmascript-6,destructuring,Javascript,Ecmascript 6,Destructuring,我不理解这两种功能之间的区别: function animal({ cat }){ return cat } function animal(cat){ return cat } 为什么要用一个而不是另一个?有什么好处吗?第一个函数将从使用对象时传入的对象返回属性cat。第二个将返回完整的对象cat,它是传入的对象 例如,第一个函数相当于: function animal(catObj){ return catObj.cat; } 这意味着,当你调用动物时,你会通过一个对
function animal({ cat }){
return cat
}
function animal(cat){
return cat
}
为什么要用一个而不是另一个?有什么好处吗?第一个函数将从使用对象时传入的对象返回属性cat。第二个将返回完整的对象cat,它是传入的对象 例如,第一个函数相当于:
function animal(catObj){
return catObj.cat;
}
这意味着,当你调用动物时,你会通过一个对象,该对象的属性为cat
例如:
因此,如果我们看第一个函数,它将提取cat属性并返回true
您的第二个函数将只返回传递到函数中的整个对象。因此,如果我们通过myCatObj,我们将在myCatObj中获得与输出相同的内容
因此,为了回答您的问题,这两种方法都用于执行不同种类的功能,因此它们在某些场景中都有各自的优势 调用这两个函数 动物{猫:9};返回9 动物9;返回undefined,因为数字9没有cat属性。js中的所有内容都是对象 当我们想知道一个对象的cat属性时,我们使用第一个函数
当我们想直接调用一个对象时,我们使用第二个方法您试过运行代码吗?它们不会做同样的事情…第一个是使用,另一个是返回完整的cat对象。
const myCatObj = {
cat: true,
dog: false,
name: "Meow"
}
animal(myCatObj); // retruns true