Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将一个Javascript文件导入另一个Javascript文件_Javascript_Html - Fatal编程技术网

将一个Javascript文件导入另一个Javascript文件

将一个Javascript文件导入另一个Javascript文件,javascript,html,Javascript,Html,我正在创建一个简单的HTML5 JS游戏,目前我的javascript文件已经达到了近1500行,而且随着要做的事情越来越难管理,有没有一种简单的方法可以将一些脚本拆分为“类”,即单独的文件,然后将所有“类”文件导入一个“主”文件 比如我有这个 File1.js function pointInRect(pnt_x, pnt_y, rect_x, rect_y, rect_w, rect_h) { if ( (pnt_x >= rect_x) && (pnt_x <=

我正在创建一个简单的HTML5 JS游戏,目前我的javascript文件已经达到了近1500行,而且随着要做的事情越来越难管理,有没有一种简单的方法可以将一些脚本拆分为“类”,即单独的文件,然后将所有“类”文件导入一个“主”文件

比如我有这个

File1.js

function pointInRect(pnt_x, pnt_y, rect_x, rect_y, rect_w, rect_h)
{
if ( (pnt_x >= rect_x) && (pnt_x <= rect_x + rect_w - 1) )
{
    if ( (pnt_y >= rect_y) && (pnt_y <= rect_y + rect_h - 1) )
    {return true;}
}
return false;
}
如何获取file2导入file1并使用该方法?如果有人能帮助我,那将是非常棒的,它将真正帮助我管理我巨大的JS文件


Canvas

只需在html中添加带有脚本标记的文件,它们将按顺序执行

<script type="text/javascript" src="file1.js">
<script type="text/javascript" src="file2.js">

只需在html中添加带有脚本标记的文件,它们将按顺序执行

<script type="text/javascript" src="file1.js">
<script type="text/javascript" src="file2.js">

其他人指出了如何将代码分解到多个文件中。如果希望在这些文件中组织代码,使用范围变量而不是全局变量,并且熟悉类/对象,则可以尝试以下操作:




//main.html
var class1=新的MyNS.class1();
var class2=新的MyNS.class2();
class1.pointInRect();
class2.anotherMethod();

但是请记住,JavaScript不是传统意义上的OO,它们不是真正的类。相反,这是一种将JS代码组织成类似于类和对象的东西的方法。如果您尝试做类似于继承等的事情,那么所需的复杂性和理解水平会迅速提高。

其他人已经指出了如何将代码分解到多个文件中。如果希望在这些文件中组织代码,使用范围变量而不是全局变量,并且熟悉类/对象,则可以尝试以下操作:




//main.html
var class1=新的MyNS.class1();
var class2=新的MyNS.class2();
class1.pointInRect();
class2.anotherMethod();

但是请记住,JavaScript不是传统意义上的OO,它们不是真正的类。相反,这是一种将JS代码组织成类似于类和对象的东西的方法。如果你尝试做类似于继承之类的事情,那么所需的复杂性和理解水平会很快提高。

不。您要么必须在HTML标记中单独包含所有文件,要么必须在服务器端连接它们。有许多构建工具可以实现后者。基本上,您只需将代码拆分为多个文件,然后在html文件中以正确的顺序(基于依赖项)引用它们。或者看看您在文件1中编写的任何内容都可以在文件2中访问,只要您在全局范围中编写了它,并且在file1.Nope之后包含file2。您要么必须在HTML标记中单独包含所有文件,要么必须在服务器端连接它们。有许多构建工具可以实现后者。基本上,您只需将代码拆分为多个文件,然后在html文件中以正确的顺序(基于依赖项)引用它们。或者看看你在文件1中写的任何东西都可以在文件2中访问,只要你已经在全局范围内写了,并且在文件1之后包含文件2。如果这么简单,我会很恼火:D,我会很快检查它,也要小心上面@Jeevan Jose所说的是的,它是有效的,哦,我明白了,所以我应该在你说的主类之前加载所有的资产。令人敬畏的欢呼,这将真正帮助我,这是最简单的方法来做,但你也可以考虑编译和压缩所有脚本到一个简单的一个,以提高网络性能。下面介绍了为什么这一点很重要,以及闭包编译器之类的工具如何提供帮助。如果真的那么简单,我会很生气:D,我会尽快检查它。我也会小心上面@Jeevan Jose所说的。是的,它是有效的,哦,我明白了,所以我应该在你说的主要类别之前加载所有资产。令人敬畏的欢呼,这将真正帮助我,这是最简单的方法来做,但你也可以考虑编译和压缩所有脚本到一个简单的一个,以提高网络性能。下面介绍了为什么这一点很重要,以及闭包编译器之类的工具如何提供帮助。
//class1.js
MYNS = MYNS | {};
MYNS.Class1 = {};
MYNS.Class1.prototype.pointInRect = function(){
  //magic here
};
//class2.js
MYNS = MYNS | {};
MYNS.Class2 = {};
MYNS.Class2.prototype.anotherMethod = function(){
  //more magic
};
//main.html
<script type="text/javascript" src="class1.js">
<script type="text/javascript" src="class2.js">

var class1 = new MyNS.Class1();
var class2 = new MyNS.Class2();

class1.pointInRect ();
class2.anotherMethod ();