2011-01-10 33 views
20

Đi xung quanh mã nguồn Modernizr Tôi đã tìm thấy điều lạ:hàm JavaScript với 'undefined' tham số

window.Modernizr = (function(window,document,undefined) { 

Sau đó chức năng này sẽ được gọi với hai đối số (this, this.document).

Tại sao undefined được sử dụng ở đây? Nó có ý nghĩa hay chỉ là kiểu mã lạ?

+0

Tôi biết rằng cấu trúc này được ghi đè không xác định trong ngữ cảnh chức năng, nhưng tôi không thể hiểu được điều gì. –

Trả lời

23

Tạo một địa phương undefined trong trường hợp ai đó xác định lại undefined ở đâu đó trong chuỗi phạm vi.

Cũng cung cấp tra cứu nhanh hơn kể từ undefined là thuộc tính toàn cầu, vì vậy việc truyền tải chuỗi phạm vi bị giảm.

+1

Wow, cảm ơn câu trả lời nhanh. Tôi không nghĩ về điều đó. –

+7

Vâng, tôi tin rằng Paul Ailen đề cập đến điều đó như là hiệu ứng asshole trong 10 điều tôi đã học về video JQuery. – Loktar

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