在ES6中解析赋值与对象属性访问

Rax*_*Pat 10 html javascript node.js ecmascript-6

var bmw = cars.bmw和之间有什么区别var {bmw} = cars?哪种方式更好?

var cars = {
    bmw: "M3",
    benz: "c250"
}

var bmw = cars.bmw // M3
var {bmw} = cars // M3
Run Code Online (Sandbox Code Playgroud)

我已经看到人们在Nodejs中这样做了.这是一回事吗?

var {ObjectId} = require('mongodb')
var ObjectId = require('mongodb').ObjectID;
Run Code Online (Sandbox Code Playgroud)

Pau*_*een 9

bmw = cars.bmw您将对象属性分配给变量,而var {bmw} = cars将对象解构为给定变量列表.

结果没有区别(在你的情况下),bmw意志有所期望的M3价值.

此外,在对对象进行解构时,您可以列出要分配的多个变量,同时=1对1分配,其中右侧部分被分配到左侧.


你也可以在解构时重命名变量

const { bmw: BeeMWee } = cars;
Run Code Online (Sandbox Code Playgroud)

  • "*但在引擎盖下它表现不同*" - 怎么样?我反驳说:虽然在语法上看起来不同,但它们之间的语义完全相同. (3认同)