2012-09-10 33 views
6

Tôi đang học JavaScript từ những điều cơ bản (mặc dù tôi lập trình bằng các ngôn ngữ khác như C#). Nó xuất hiện với tôi câu hỏi trong đó có hai cách này là hiệu quả hơn và nên được sử dụng như quy tắc chung.Ký hiệu chữ viết tắt VS. constructor để tạo các đối tượng trong JavaScript

Tôi chắc chắn và mong đợi không có câu trả lời dứt khoát nhưng tôi muốn biết những ưu và nhược điểm chung.

Cảm ơn bạn !!

+1

cả hai đều có mục đích sử dụng của họ, lựa chọn không được sử dụng một hay cách khác. – Ibu

+1

Câu trả lời hay hơn cho cùng một câu hỏi ở đây: http://stackoverflow.com/questions/4859800/should-i-be-using-object-literals-or-constructor-functions – BritishDeveloper

Trả lời

8

Các ký hiệu đối tượng thường là cách để đi. Chúng chỉ cần được phân tích cú pháp khi tải tập lệnh, có thể giới thiệu các tối ưu hóa khác nhau bằng công cụ tạo tập lệnh.

Các nhà xây dựng cần được thực hiện. Điều đó có nghĩa là chúng sẽ chậm hơn, nhưng bạn có thể dễ dàng thêm một số mã xác nhận, vv cho chúng, và chúng cho phép xây dựng các đối tượng phức tạp với các phương thức công khai, đặc quyền và các thuộc tính riêng ẩn trong phạm vi của nhà xây dựng. Ngoài ra, tất nhiên, họ xây dựng các đối tượng chia sẻ một nguyên mẫu, mà bạn có thể thấy hữu ích.

4

Không nhận thức được bất kỳ hiệu suất hiệu suất nào của cái khác. Tuy nhiên, ký pháp theo nghĩa đen dường như có được sở thích của nó do đối số đơn giản và vì nó tránh sử dụng các hàm tạo và từ khóa new.

Các nhà xây dựng và từ khóa new được xem là một số tính năng tiêu cực của ngôn ngữ JavaScript (xem Crockford - JavaScript: Phần tốt). JSLint thậm chí còn gọi ra khi tìm kiếm new Array() hoặc new Object() sử dụng.

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