多文件中的JavaScript

多文件中的JavaScript,javascript,Javascript,我创建了两个JavaScript文件,一个是“validators.js”,另一个是“UserValidations.js” 下面是validators.js的代码 function isBlankString(value) { if (value.replace(/\s/g, "") == "") { return true; } else { return false; } } 在另一个js文件中,我定义了验证用户名的函数,如下所示

我创建了两个JavaScript文件,一个是“validators.js”,另一个是“UserValidations.js”

下面是validators.js的代码

function isBlankString(value) {
    if (value.replace(/\s/g, "") == "") {
        return true;

    } else {
        return false;
    }
}
在另一个js文件中,我定义了验证用户名的函数,如下所示

function validateUsername(element) {

    var username = element.value;

    if(value.replace(/\s/g, "") == ""){
        //nothing to validate
        return;
    }else{
        //validation logic
    }

}

现在很明显,我应该使用isBlankString(value)方法来检查字符串长度。但我对如何使用其他文件中定义的函数知之甚少。

在实际使用函数之前,必须在HTML文档中包含提供函数的文件

这意味着,可以肯定的是,
validators.js
应该包含在
UserValidations.js
之前:

<script src="validators.js" type="text/javascript"></script>
<script src="UserValidations.js" type="text/javascript"></script>


I您在HTML文件中,只需在HTML中包含这两个文件。

请确保首先在页面上包含
validators.js
文件:

<script src="validators.js"></script>

只要两个文件都包含在内,就可以调用它。JavaScript没有真正需要担心的名称空间概念。您可以考虑将文件合并为一个,因为它节省了发送到服务器的HTTP请求的数量。 只需将这两个文件都包含到html页面中,并在需要时调用函数即可。没有什么难事。或者在一个文件中使用其中两个函数作为旁注,
isBlankString
函数过于冗长。考虑用下面的

替换它
function isBlankString(value) {
    return value.replace(/\s+/g, "").length == "";
    // or even: return value.replace(/\s+/g, "").length == 0;
}

您拥有的
if
语句完全没有必要。

更重要的是,您在窗口对象中定义了这两个函数。最好通过创建自己的命名空间来全局保护您的函数:

function isBlankString(value) {
    if (value.replace(/\s/g, "") == "") {
        return true;

    } else {
        return false;
    }
}
您应该将所有对象放在自己的命名空间中,如

Sarfraz.isBlankString = function (value) {
    if (value.replace(/\s/g, "") == "") {
        return true;

    } else {
        return false;
    }
}
以及其他功能。实际上,它们当前被定义为window.isBlankString。如果您将其他人的javaScript加载到您的页面中,您很可能会被覆盖

对于您的主要问题,在执行任何命令之前,都应该加载这两个命令。研究如何使用jQuery和$(document).ready功能


始终先加载脚本,然后执行。同时加载和执行会导致灾难,通常是不必要的。这样,您就不必担心将它们放在文件中的顺序。

一个好方法是在多个js文件中进行开发,然后在生成/构建系统中将它们组合在一起创建JavaScript库

有关进一步的讨论和示例makefile,请参阅本文:


您还可以压缩和缩小javascript以进一步减小文件大小:请参见或

,但这并不能使js文件具有良好的可读性。它将不是很容易理解的代码文件。如果有时忘记添加一个文件,事情就会搞砸;关键是validtors.js应该在顶部。@vijay这是JavaScript(以及其他所有语言)的工作方式。另一个文件是一个依赖项,如果您忘记包含它,它当然不会工作。不要试图改变现有体系结构的工作方式,只需使用它即可。公平地说,其他语言使包含更加明确。Python有导入语句,在C/C++中包含阿德里亚诺。JS和大多数其他语言的区别在于,大多数其他语言在源文件(或头文件)中定义它们的依赖关系,而JS依赖HTML来定义它。JavaScript将作用域应用于变量和函数声明,但每个文件没有默认作用域。
Sarfraz.isBlankString = function (value) {
    if (value.replace(/\s/g, "") == "") {
        return true;

    } else {
        return false;
    }
}