我见过很多这样的代码:
navigator.geolocation.getCurrentPosition(
({coords}) => {
const {latitude, longitude} = coords
this.setState({
position: {
latitude,
longitude,
},
region: {
latitude,
longitude,
latitudeDelta: 0.005,
longitudeDelta: 0.001,
}
})
},
(error) => alert('Error: Are location services on?'),
{enableHighAccuracy: true}
);
我的问题是我们为什么以及何时在参数中使用对象解构。
为什么coords
使用对象解构,而error
不使用它?
最佳答案
这就是 JS 中的对象。我建议您阅读更多有关对象的内容。
但这是一个简单的例子。
const car = {door: "blue", tires: 4}.
当然,您可以像 car.door
一样使用它来获得 blue
,或使用 car.tires
来获得 4
。但您可以看到您在各处编写相同的代码car.
。最好执行以下操作:
const {door, tires} = car
然后在其他地方,您可以简单地做门
和轮胎
。这完全取决于个人喜好。我使用它是因为它简单易懂,并且重复代码较少。没有好坏之分。
就您为什么 error
不需要解构来说,是因为我们只是检查 error
是否存在。这与您所写的相同:
(error) => alert('something')
和
(Boolean(error)) => alert('something').
在这里你甚至不关心error
里面有什么,你只想知道是否有error
。这就是为什么您不需要解构。
如果您想获取error
中的某些项目,假设code
是error
的键之一。然后你就可以这样做
({code}) => alert(code)
关于javascript - 为什么以及何时我们在 JavaScript 中使用对象解构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51508799/