JS的参数 - 这是最好的方法吗?

Jon*_*has 3 html javascript regex performance jquery

我想加载一个JS,他的行为应该根据一个参数而有所不同.我认为其中一种方法可能是:

<script src="script.js?type=a" type="text/javascript"></script>
<script src="script.js?type=b" type="text/javascript"></script>
...
Run Code Online (Sandbox Code Playgroud)

然后,我将使用正则表达式获取参数,如:

function getURLParameter(name) {
    return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search)||[,""])[1].replace(/\+/g, '%20'))||null;
}
Run Code Online (Sandbox Code Playgroud)

(上面的函数从这里).

但是,我不确定这是否是最佳方法.你有没有其他方法可以做到这一点,比如,在里面加载全局变量<script></script>然后从JS中读取它们?

jra*_*jav 5

通常可能有更好的方法来组织代码,但配置参数比使用URL查询更简单的方法是使用参数简单地调用已定义的函数:

外部脚本(foo.js):

function foo(param) {
    console.log(param);
}
Run Code Online (Sandbox Code Playgroud)

HTML:

<script src="foo.js"></script>
<script>foo("parameter value");</script>
Run Code Online (Sandbox Code Playgroud)

编辑:这是一个"配置"参数而不立即调用任何东西的例子(基本上是一个简单的闭包):

function (param) {
    $(document).ready(function () {
        // Use param
    });
}
Run Code Online (Sandbox Code Playgroud)

$(document).ready 已经是一个异步调用,所以这比其他方式更简单,但通常你可以使用IIFE(立即调用函数表达式): (function (param) { })(paramValue)