我有一个关于全局脚本的问题,我现在正在使用以下脚本,因为这些函数在每个页面上都是全局使用的。(之前我有类似于
我的问题是,这是一种有效的方式或最佳实践吗?我真的需要它们全局定义,并在其他脚本调用这些方法之前加载。
我已经搜索过了,像这样的文章建议不要使用全局函数。https://www.w3schools.com/js/js_best_practices.asp
单位转换器
函数在8个地方定义,现在我将其移到全局脚本中,所以我只定义一次。)我的问题是,这是一种有效的方式或最佳实践吗?我真的需要它们全局定义,并在其他脚本调用这些方法之前加载。
我已经搜索过了,像这样的文章建议不要使用全局函数。https://www.w3schools.com/js/js_best_practices.asp
避免全局变量
最小化使用全局变量。
这包括所有数据类型、对象和函数。
全局变量和函数可以被其他脚本覆盖。
使用本地变量,学习如何使用闭包。
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
/*-----------------------------------------------------
global function for Set/Get Cookie
------------------------------------------------------*/
function setCookie(cname,cvalue,exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires=" + d.toGMTString();
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
function getCookie(name) {
var value = "; " + document.cookie;
var parts = value.split("; " + name + "=");
if (parts.length == 2) return parts.pop().split(";").shift();
}
/*-----------------------------------------------------
global function for ...
------------------------------------------------------*/
function getLBS_Global(p, q, u, b, wb) {
if (b === null || wb === null) {
alert("Error in unit conversion, please retry");
}
var out = {};
switch (u) {
case "8": // A bushel
out.q = (q * b);
out.p = (p / b);
break;
case "10": // lbs
out.q = q;
out.p = p;
break;
case "11": // cwt
out.q = (q * 100);
out.p = (p / 100);
break;
case "12": // metric tonne
out.q = (q * 2204.62262);
out.p = (p / 2204.62262);
break;
case "136": // W bushel
out.q = (q * wb);
out.p = (p / wb);
break;
}
return out;
}
</script>
</head>
<body>
...
</body>