Có cách nào thú vị để bắt đầu một mảng nếu chưa được khởi tạo không? Hiện nay mã trông giống như sau:Cách thanh lịch để bắt đầu và mở rộng một mảng javascript
if (!obj) var obj = [];
obj.push({});
mát mẻ sẽ là một cái gì đó giống như var obj = (obj || []).push({})
, nhưng điều đó không làm việc :-(
Um ... Thats một vị trí lẻ cho 'var obj' .. sau' if (! obj) ', không có ý nghĩa gì nhiều, là' obj' cũng được định nghĩa trong một phạm vi cao hơn hay cái gì đó? – gnarf
javascript không init phạm vi bên trong nếu/else – sod
Tôi biết điều này, đó là lý do tại sao tôi tự hỏi tại sao bạn có thể định nghĩa một điều kiện 'var' như thế ... Tôi giả sử' obj' có lẽ là một hàm tham số, và từ khóa 'var' trong đó chỉ là vô ích/không mong muốn ... Nếu không, không có cách nào' obj' có thể được định nghĩa trước cuộc gọi này ... Thử 'obj = {}; (function() {if (! obj) var obj = []; console.log (obj);})(); '- Bạn sẽ nhận được' [] ' – gnarf