2013-09-03 39 views
8

Về JavaScript, khi thanh toán bù trừ một mảng, tôi đã tìm thấy hai phương pháp:Trong JavaScript, sự khác biệt giữa myArray.length = 0 vs myArray = new Array() là gì?

myArray.length = 0; 

vs

myArray = new Array() 

tôi sẽ đoán logic myArray.length = 0; giữ tham chiếu trong khi myArray = newArray() tạo ra một tham chiếu mới làm tài liệu tham khảo trước khoảng trống .

Tuy nhiên, tôi đã tìm thấy trong quá khứ đoán cách thức hoạt động JavaScript bằng cách sử dụng logic riêng của tôi đã thường xuyên thất bại :)

phần chênh lệch (nếu có) giữa hai phương pháp là gì?

Trả lời

3

Bạn chính xác lần này. new Array() tạo một phiên bản mảng mới và gán nó cho myArray. myArray.length = 0 làm trống mảng cũ trong khi myArray vẫn trỏ đến mảng cũ.

Btw, tốt hơn là sử dụng ký hiệu [] hơn new Array().

Cá nhân tôi luôn cố gắng sử dụng myArray.length = 0; vì nó thực sự làm trống nội dung của mảng.

0
myArray.length = 0; // Signifies empty array 
[1,2,3] // Length of this array is 3 

Về cơ bản, một mảng có nội dung bị ghi đè bằng một mảng trống.

Bạn cũng có thể sử dụng này:

myarray = []; //More simple and elegant!!! 

Hiệu suất khôn ngoan: [] nhanh hơn new Array();

Như juno đã nói: new Array() tạo ra một thể hiện mới của mảng (mảng này sẽ được kích thước được đề cập trong các đối số) và gán nó cho myArray.

Các vấn đề liên quan