gpt4 book ai didi

javascript - 为什么在获取脚本路径时使用自执行匿名函数

转载 作者:行者123 更新时间:2023-11-29 10:18:19 24 4
gpt4 key购买 nike

我发现有人用这个方法来获取当前脚本位置的路径:

    _getScriptLocation: (function() {
var r = new RegExp("(^|(.*?\\/))(" + scriptName + ")(\\?|$)"),
s = document.getElementsByTagName('script'),
src, m, l = "";
for(var i=0, len=s.length; i<len; i++) {
src = s[i].getAttribute('src');
if(src) {
m = src.match(r);
if(m) {
l = m[1];
break;
}
}
}
return (function() { return l; });
})(),

Full codes here.

但不知道为什么要使用自执行匿名函数?

为什么不用这个:

_getScriptLocation: function() {
var r = new RegExp("(^|(.*?\\/))(" + scriptName + ")(\\?|$)"),
s = document.getElementsByTagName('script'),
src, m, l = "";
for(var i=0, len=s.length; i<len; i++) {
src = s[i].getAttribute('src');
if(src) {
m = src.match(r);
if(m) {
l = m[1];
break;
}
}
}
return l;
}

最佳答案

在第一个(自执行函数)中,函数的过程只执行一次,所以:

APP._getScriptLocation();
APP._getScriptLocation();
APP._getScriptLocation();

只是为每次调用返回 l(该过程将永远不会再次执行 - 它只会在您的脚本加载后执行:因为它是一个自执行函数)。

但是在第二个中,每当你调用你的方法时:

APP._getScriptLocation();

您正在一次又一次地执行所有过程,在这种情况下不需要。

关于javascript - 为什么在获取脚本路径时使用自执行匿名函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16952932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com