Tôi đã tạo một trò chơi HTML5 bao gồm nhiều cấp độ nhỏ. Khi người chơi đến được cửa, một cấp độ khác sẽ được nạp. Khi mức đang tải nó về cơ bản chỉ là tập hợp tất cả các mảng dụ để []
và sau đó đẩy thứ vào họ, bằng cách tạo ra các trường hợp mới của sự vật, ví dụ:Trong Javascript, tôi có nên xóa các phiên bản cấp trước đó sau khi tải một phiên bản mới không?
enemies = [] //this has previously been full of pointers from the old level
for (i = 0; i < n_enemies; i ++)
enemies.push(new Enemy());
Tuy nhiên, nó đã đi đến sự chú ý của tôi mà chỉ đơn thuần là thiết lập một mảng đầy đủ các con trỏ đến []
, không thực sự xóa các phiên bản! Vì vậy, hiện javascript làm điều này tự động? Hoặc tôi có tự mình phải tự mình delete
mỗi lần không?
Ngoài ra 'xóa' chỉ được xác định cho thuộc tính của đối tượng, vì vậy javascript thậm chí không chứa cách xóa biến mảng - bạn phải giả định công cụ js sẽ xử lý bộ sưu tập rác sau khi tất cả các tham chiếu bị xóa. – wheresrhys
wheresrhys - Các thành viên mảng chỉ là các thuộc tính có tên số. Xóa các công trình trên chúng quá (ví dụ 'xóa mảng ['0']' loại bỏ thành viên đầu tiên của một mảng bắt đầu từ số không), nhưng như Jivings nói, nó không cần thiết ở đây. – RobG
@RobG - Có lẽ tôi nên rõ ràng hơn - bởi "biến mảng", tôi có nghĩa là các biến là mảng, chứ không phải là giá trị nguyên thủy được lưu trữ trong mảng. – wheresrhys