Tôi đã đi qua hai cách khác nhau để xác định/đặt tên đối tượng và chức năng trong JavaScript trước tiên kiểm tra sự tồn tại của tên trước khi sử dụng nó. Vấn đề là, tôi không biết cái nào là tốt hơn (từ các quan điểm về tốc độ và khả năng sử dụng) và không thể sử dụng toán tử boolean trong tìm kiếm của Google để tìm ra nó.Định nghĩa đối tượng JavaScript có điều kiện - điều nào tốt hơn?
Người đầu tiên tôi nhìn thấy thường xuyên nhất:
var myNewObject = myNewObject ? myNewObject : function() {
// Code goes here.
};
thứ hai dường như ngắn gọn hơn, nhưng tôi đã chỉ nhìn thấy nó một hoặc hai nơi, vì vậy tôi không biết nếu có một tiêu chuẩn hoặc thậm chí một tên cho nó:
var myNewObject = myNewObject || function() {
// Code goes here.
};
về mặt chức năng, cả hai đều làm điều tương tự và cả hai đều có vẻ làm việc ở mọi trình duyệt tôi có thể kiểm tra trong câu hỏi của tôi là thế này - đó là tốt hơn và tại sao.? Ngoài ra, trong khi định nghĩa đầu tiên về cơ bản là một điều kiện đơn dòng ... thì cái thứ hai được gọi là gì?
thứ hai là phổ biến hơn. Ít nhất đối với những người biết ngôn ngữ ... – galambalazs
Thật tuyệt, có ai biết điều này có hoạt động với nguyên mẫu không: ví dụ: Array.prototype.forEach = Array.prototype.forEach || chức năng (... Tôi hỏi vì trên trang web Mozilla họ sử dụng bình thường nếu (! Array.prototype.forEach) Array.prototype.forEach = function (... –
@Marco Demaio Theo cùng một logic là * nên * làm việc Tôi muốn đề nghị tát nó trong một kịch bản thử nghiệm và xem nếu nó có.Bạn vẫn đang định nghĩa một phương thức đối tượng ... nó chỉ xảy ra trong một không gian tên cụ thể. – EAMann