[英]Error when trying to use Destructuring as function parameters
我正在嘗試學習如何使用解構作為參數。 我有以下代碼
const states = {
selected: '-selected',
excluded: '-excluded',
notSelected: '-notSelected'
}
function showSelected({selected}) {
alert(selected);
}
showSelected(); //Cannot destructure property 'selected' of 'undefined' as it is undefined.
問題是當我調用 function 時出現此錯誤:
“無法解構‘未定義’的‘選定’屬性,因為它是未定義的。”
但是選定變量的值是存在的,如果我執行諸如 console.log(states.selected) 之類的操作,我只會得到正確的值
我在這里缺少什么?
JSfiddle 與我的代碼: https://jsfiddle.net/db97z3uk/
您沒有傳遞參數:
showSelected(states);
因此,如果沒有參數,您將使用undefined
進行解構。
如果您希望它與在 function scope 之外定義的變量一起使用,您將需要這樣做:
function showSelected({selected} = states) {
alert(selected);
}
showSelected()
現在,沒有參數,它將從狀態中產生默認選擇值。
我們調用showSelected()
並且不發送任何參數,您將undefined
作為參數發送並從undefined
中selected
會產生錯誤。 你可以這樣調用:
showSelected({})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.