【发布时间】:2017-05-07 13:41:20
【问题描述】:
在 ES6/ES2015 中,我可以使用 Object destructuring 从作为函数参数传递的对象中提取字段:
function userId({id}) {
return id;
}
var user = {
id: 42,
};
console.log("userId: " + userId(user)); // "userId: 42"
在上面的例子中,userId 函数中设置的id 变量是否等同于通过var、const 或let 设置它?
那么下面哪个是等效函数:
变量
function userId(user) {
var id = user.id
return id;
}
让
function userId(user) {
let id = user.id
return id;
}
常量
function userId(user) {
const id = user.id
return id;
}
(来自上面链接的 MDN 页面的示例函数,跳转到“从作为函数参数传递的对象中提取字段)
【问题讨论】:
-
你知道它不是
const,因为在函数中你可以为id分配另一个值。 -
在这种情况下 let 和 var 之间没有有意义的区别,因为函数参数的范围始终是整个函数。