我不知道您是否需要查看完整的代码,但是我看到了一些可以做到这一点的插件:

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?)。

09-07 17:31
查看更多