Liệu add này 'dataValidate' đến đối tượng cửa sổ
Vâng, nó sẽ.
Ví dụ: nếu bạn đang ở trong phạm vi khác;
function foo() {
var bar = 4;
window.bar = bar;
}
Bây giờ bạn đã thực hiện bar
toàn cầu, và có thể truy cập nó từ bất cứ nơi nào . Nếu không có window.bar = bar
, bạn chỉ có thể truy cập trong phạm vi foo()
.
Bạn thường thấy thông tin này được sử dụng ở cuối IIFE, để xuất bản hoạt động với phần còn lại của thế giới (ví dụ: jQuery);
(function() {
var jQuery;
// Setup jQuery
window.jQuery = jQuery;
}());
Bạn có thể thấy những người thực hiện việc này thay thế;
function foo() {
bar = 4; // Note the lack of `var`
}
Điều này có tác dụng tương tự thông qua việc sử dụng "globals ngụ ý"; nhưng nó sẽ ném một lỗi vào chế độ nghiêm ngặt của ES5 và thường được coi là thực hành không tốt (người lập trình có ý định làm cho nó toàn cầu hoặc họ chỉ vô tình bỏ qua var
?).
Bản sao 'dataValidate' thành biến toàn cầu có cùng tên. – donkeydown