ES6解构具有相同属性名称的两个对象

Car*_*ata 9 javascript destructuring ecmascript-6

我有两个javascript对象与下一个语法:

var section = { name: "foo", tables: [] }
var field   = {name: "bar", properties: {} }
Run Code Online (Sandbox Code Playgroud)

和一个期望这些对象的函数,但在函数中我只使用每个对象的名称,所以我想知道我是否可以在函数声明中解构两个对象,如:

function something( {name}, {name} ) {
  //code
} 
Run Code Online (Sandbox Code Playgroud)

第一个应该是section.name,第二个应该是field.name.

在这种情况下,有两种方法可以进行解构吗?或者我应该只观看功能中的名字?

哪个更好?

谢谢.

And*_*ndy 19

是的,看起来你可以标记/重新分配参数: {before<colon>after}

var section = { name: 'foo', tables: [] };
var field = { name: "bar", properties: {} };

function something({ name: sectionName }, { name: fieldName }) {
  console.log(sectionName, fieldName);
}

something(section, field);
Run Code Online (Sandbox Code Playgroud)

DEMO

  • 当然没有人会使用 foo 或 bar。你的评论太迂腐了。 (2认同)