2013-09-03 1 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.