回答
我建議使用明確的檢查,如果財產c
存在於給定的對象或不。如果沒有給出,則使用默認值。
var a = this.props.a,
b = this.props.b,
c = this.props.c === undefined ? 'foo' : this.props.c;
的以其他方式使用模式
c = this.props.c || 'foo';
不給定falsy值爲零一樣工作。
爲什麼您需要使用
undefined
進行檢查(在loganfsmyth中提到此問題的評論)?因爲
undefined
是在ES6中的函數中檢查default parameters的值。const f = (c = 'foo') => console.log(c); f(); // 'foo' f(undefined); // 'foo' f(0) // 0
不需要在this.props中使用'c'嗎? – CodingIntrigue
@CodingIntrigue,我不明白這個問題。 –
'in'的左側不需要是字符串嗎? 'this.props'中的c會產生一個錯誤,而不是預期的'true' /'false'。 – CodingIntrigue
var
a=this.props.a,
b=this.props.b,
c=this.props.c||"foo";
對象解構改掉與對象相同的名稱查找屬性,所以
{prop}=obj
等於:
prop=obj.prop;
默認參數可以用輕鬆實現或運營商:
prop=obj.prop || default;
,或者如果你想算falsys爲道具,itll是:
prop=("prop" in obj)?obj["prop"]:default;
@rajesh我應該怎麼解釋?由於OP知道解構目標是什麼,我認爲它自我解釋 –
但是很好的答案-_- –
@Jonasw你沒有回答OP。你正在爲讀者回答。所以一個解釋是必須的。 – Rajesh
我相信這將是:
var a = this.props.a,
b = this.props.b,
c = this.props.c || "foo"
至少我希望,否則這將是下雨祈禱
那裏,默默downvoted(像往常一樣),而其他人同時發佈完全相同的答案,並沒有得到downvoted ... meh –
瘋狂的世界...:/ –
最簡單的方法是:
var a = this.props.a,
b = this.props.b,
c = this.props.c===undefined?"foo":this.props.c
但更好的方法是隻使用this.props
對象,而不是將其存儲在局部變量中。
' c = this.props.c === undefined?「foo」:this.props.c'可以簡單地重寫'c = this.props.c || 「foo」'(沒有downvote) –
這是不正確的!它會將所有的falsy值(比如0和「」)轉換爲默認的「」「」foo「==」foo「'。這種行爲可能沒有打算。 – Bellian
- 1. 將UPDATE語句轉換爲SELECT語句
- 2. 將ES5 Mixins轉換爲高階組件
- 3. 將字符串語句轉換爲切換字符串語句
- 4. Typescript轉換是否將ES6轉換爲ES5?
- 5. 將JSON轉換爲Getter/Setter語句
- 6. 將值轉換爲switch語句
- 7. 將if else語句轉換爲三元
- 8. 將自然語言轉換爲iku句?
- 9. 將此SQL語句轉換爲LINQ
- 10. 將SQL語句轉換爲named_scope?
- 11. 將SQL CASE WHEN語句轉換爲C#
- 12. 將SQL語句轉換爲Linq-2-Sql
- 13. 將SQL語句轉換爲Linq
- 14. 將動態JOINS轉換爲SQL語句
- 15. 將LINQ轉換爲sql語句
- 16. 將語句轉換爲序言代碼
- 17. 將WHERE邏輯轉換爲SQL語句
- 18. 如何將FOR語句轉換爲LINQ
- 19. 將jquery「if」語句轉換爲「switch」
- 20. 將SQL語句轉換爲LINQ
- 21. 如何將switch語句轉換爲Perl
- 22. 將sql語句轉換爲linq;
- 23. 如何將此語句轉換爲XAML?
- 24. 將sql語句轉換爲cakephp statment
- 25. 將SQL語句轉換爲Drools規則
- 26. 將行轉換爲If語句的列
- 27. 將SQL語句轉換爲Linq?
- 28. 將SQL語句轉換爲LINQ-to-SQL
- 29. 將選擇語句轉換爲刪除
- 30. 將Model.each轉換爲SQL語句
'VAR一個= this.props.a,B = this.props.b' – Rajesh
@rajesh在ES5常量... –