2017-10-15 88 views
0

我試圖將參數傳遞給Javascript中的函數。但是,參數被解釋爲文字串,而不是該函數的參數。這是由於結腸的說法直接以下:冒號前的參數

update(column, selected) { 
      var cols = {...this.props.columns, column: selected} 
      this.props.dispatch(updateColumns({type: "UPDATE_COLUMNS", cols})) 
    } 

我已經嘗試使用參數[0]的,而不是那麼我告訴論據是保留字在嚴格模式。任何想法如何我可以閱讀這個值作爲一個參數,而不是一個字符串?

+2

'[column]'而不是'column' - 它只能在較新的瀏覽器中工作。 – Pointy

回答

1

在現代JavaScript環境,對象初始化語法允許在左側的屬性初始化的待評價的表達式:

update(column, selected) { 
     var cols = {...this.props.columns, [column]: selected} 
     this.props.dispatch(updateColumns({type: "UPDATE_COLUMNS", cols})) 
} 

的方括號表示內的表達應被評估,結果應用作屬性名稱。

在較老的環境中,您必須在單獨的語句中執行此操作,但由於您已經在使用擴展語法,因此我猜測您並不擔心這一點。