2012-11-14 29 views
5

Nếu tập lệnh của tôi thực hiện một hàm trả về, ví dụ: một đối tượng lớn mà tôi không muốn sử dụng hoặc lưu trữ, nó là tốt hơn/nhanh hơn/ít bộ nhớ chuyên sâu để gọi chức năng đó với các nhà điều hành void? Hay nó sẽ làm giảm hiệu suất vì giá trị trả về sẽ chỉ được ghi đè?Hiệu suất void JavaScript

void myFunc(); 

Chỉ cần tạo ra một thử nghiệm:

http://jsperf.com/voidperf

+3

Hãy GC làm công việc của mình – zerkms

+0

Vì vậy, bạn đã thử nghiệm bản thân này, hey? –

+0

Tôi nhận được 1,16% chậm hơn khi sử dụng khoảng trống trong bài kiểm tra của bạn. Tiếp theo là .80%. Tôi nghĩ rằng có thực sự không có ảnh hưởng của việc sử dụng void trong kịch bản đó. –

Trả lời

2

Nhà điều hành void chỉ được sử dụng để có được những giá trị nguyên thủy undefined; nó có thể hữu ích khi bạn chạy mã trong chế độ nội tuyến javascript:, bởi vì trang sẽ không được thay thế bằng giá trị trả lại (được đúc thành chuỗi) nếu đó là undefined.

Do đó, không có sự khác biệt đáng kể giữa hai cấu trúc này:

getSuperBigResult(); 
void getSuperBigResult(); 

JavaScript sẽ chạy cả hai một cách void'ish, bởi vì các tuyên bố trước đây không sử dụng giá trị trả về một trong hai.

Xem thêm: void