如何在不包含匿名函数的情况下为 jQuery 使用美元符号?

有一种非常常见的技术来编写$而不是jQuery将其包装在函数中,如下所示:


(function($) {

    //Code here

})(jQuery);

现在,问题在于,您在一个小的本地范围内,这在大多数情况下是好的,但是如果您尝试通过字符串构造动态调用函数名称:


let dynamic_name = some_function_name; //but should be dynamic, duh

window[dynamic_name]();

将无法工作,因为您在该本地范围内操作,而不是在该window范围内操作,它将无法找到该功能,例如:


(function($) {

    //If we put this outside of this scope, it works.

    function test() {

        console.log('test');

    }

    let name = 'test';

    window[name]();

})(jQuery);

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

这也意味着如果您的脚本被用作库,则您的函数不可调用,因为您将它们包装在匿名函数中。


你如何解决这个问题?


梦里花落0921
浏览 133回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript