簡體   English   中英

嘗試使用解構作為 function 參數時出錯

[英]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作為參數發送並從undefinedselected會產生錯誤。 你可以這樣調用:

showSelected({})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM