你可以從內部壓入數組文字嗎?在JavaScript中,你可以推入一個自調數組文字
0
A
回答
4
不,你不能這樣做。在Javascript中,items
數組(您稱之爲「父數組」)在本地範圍內不存在,直到解釋器完全處理字面聲明,因此您不能在文字聲明中將.push()
寫入它。
如果您想根據代碼條件動態修改它,您必須在文字聲明完成後執行此操作。
你可以在字面聲明中聲明一個方法來修改items
數組。但是,如果在靜態聲明中調用該方法,那麼items
將不會被定義,因爲它的定義尚未完成。該方法需要在數組文字聲明完成後稍後調用。
但是,在您的字面聲明中的自我調用方案中,items
將不會被定義,因此您將收到錯誤消息。
您可以擁有一個自調用表達式,該表達式可以運行並返回一些值,然後該值可以是您的字面聲明中某個屬性的值。這只是一個常規的Javascript表達式,如果需要,可以通過表達式計算任何字面聲明值。在ES6中,您甚至可以使用計算的屬性名稱。但是,parent array
符號直到字面聲明完成處理完成後纔會存在,因此您無法從解析字面聲明期間評估的表達式中訪問該父符號。
解釋另一種方式,在你上面的代碼,你基本上有:
let items = x;
其中x
是一個很大的對象字面你聲明。
在將任何內容分配給items
之前,Javascript將計算整個x
。所以,你不能有條件地把東西添加到items
而x
正在評估。
相關問題
- 1. 你可以使用array_push()將數組推到另一個數組上嗎?
- 2. 你可以推薦哪一個用於mysql訪問的javascript庫?
- 3. 你可以將數組作爲數組中的一個值嗎?
- 4. 在JavaScript中將返回值推入一個數組中
- 5. JavaScript回調一個數組,其中值通過一個循環推入
- 6. Bash腳本:你可以自己做一個函數調用嗎?
- 7. 你可以調用一個數組元素的方法嗎?
- 8. 你可以在字符串文字中插入中斷嗎?
- 9. 你可以在VBScript中聲明一個常量數組嗎?
- 10. SQL Reporting - 你可以在一個組裏面有一個組嗎?
- 11. 你可以停止輸入一個整數的字母嗎?
- 12. 在javascript中將項目推入數組
- 13. JavaScript數組推在一個for循環
- 14. 你可以自動在你的可執行文件中嵌入一個iOS框架嗎?
- 15. 將數組推入另一個數組?
- 16. 將數組推入另一個數組
- 17. 你可以創建一個其他數組的數組?
- 18. 你可以提交一個帶有文本輸入數組的表單嗎?
- 19. 你可以在JavaScript中有多個可選參數嗎?
- 20. 你可以將字符串分解爲C中的一個字符數組嗎?
- 21. 你可以將一個DataTable聲明爲一個數組嗎?
- 22. 你可以存儲多個字符串在光標(如數組)
- 23. 你可以用一個可能已經被自動釋放的數組來初始化一個數組嗎?
- 24. 在Javascript中,如果你有一個函數,你可以通過名字得到參數嗎?
- 25. 你可以調用一個變量作爲數組中的值 - PHP
- 26. 錯誤的值被推入到一個Javascript數組中
- 27. 你可以在本地保存一個ViewController數組(NSKeyedArchiver)嗎?
- 28. 你可以添加一個函數到被劫持的JavaScript數組嗎?
- 29. 你可以在函數調用中調用一個PHP定義的值嗎?
- 30. 你可以在設備上有一個可以從內核調用的函數
「對象內部數組」的語法無效。對象字面值中的值可以是表達式,但不清楚「{tag:」label「id =」note_title「}'的含義。 – RobG
相關:[對象字面聲明中的自引用](http://stackoverflow.com/q/4616202/218196) –
@Felix Kling,謝謝,我在考慮在我的問題中發佈這個,因爲它與我的相似我正在尋找,但我特別感興趣的數組文字。 var foo = { a:5, b:6, init:function(){ this.c = this.a + this.b; 返回此; } } .init(); – Rick