[英]JavaScript: Why I get `undefined` when I use an assignment with destructuring?
[英]why and when we use object destructuring in javascript?
我看過很多這樣的代碼:
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
使用對象coords
而error
不使用它呢?
這都是關於JS中的對象的。 我建議您閱讀有關對象的更多信息。
但這是一個簡單的例子。
const car = {door: "blue", tires: 4}.
當然,您可以像car.door
一樣使用它來獲取blue
,或者使用car.tires
來獲取4
。 但是您可以看到您正在編寫相同的代碼car.
到處。 最好執行以下操作:
const {door, tires} = car
然后在其他任何地方,您都可以做door
和tires
。 這完全取決於個人喜好。 我之所以使用它,是因為它簡單易懂,並且重復代碼更少。 沒有好壞。
至於您為什么不需要破壞error
,是因為我們只是在檢查error
存在。 這與您寫的內容相同:
(error) => alert('something')
和
(Boolean(error)) => alert('something').
在這里,您甚至都不關心error
內在的內容,您只想知道是否存在error
。 這就是為什么您不需要進行銷毀的原因。
如果要在error
獲取某些內容,可以說code
是error
的關鍵之一。 那你可以做
({code}) => alert(code)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.