我不知道您是否需要查看完整的代码,但是我看到了一些可以做到这一点的插件:
window.dataValidate = dataValidate
这是否将“dataValidate”添加到窗口对象,或者它如何工作?
最佳答案
是的,它会的。
例如,如果您在另一个范围内;
function foo() {
var bar = 4;
window.bar = bar;
}
现在,您已经将
bar
设置为全局的,并且可以从任何地方访问它。没有window.bar = bar
,您只能在foo()
中访问它。通常,您会在IIFE的结尾处看到这种用法,以将作品发布到世界其他地方(例如jQuery);
(function () {
var jQuery;
// Setup jQuery
window.jQuery = jQuery;
}());
您可能会看到有人这样做;
function foo() {
bar = 4; // Note the lack of `var`
}
通过使用“隐含的全局变量”,具有相同的效果;但是它会在ES5严格模式下引发错误,通常被认为是不好的做法(程序员是要使它全局化,还是只是无意中省略了
var
?)。