我有几个.js文件我正在导入一个更大的项目。我发现该项目实际上无法访问它们,因此,我尝试将其煮沸到最基本的代码进行测试。基本上,我有一个HTML文件使用
加载.js文件 <script src="Files/data.js" type="text/javascript"></script>
<script src="Files/tally.js" type="text/javascript"></script>
data.js看起来像这样:
var data= {};
data.values=[];
data.values["Philadelphia"]=10;
data.values["level"]=109;
data.getValue=function(level){...}//returns 109
data.checkValues=function(level){...}//returns true
Tally看起来像这样:
var enemyTally= {};
enemyTally.cities=[];
enemyTally.cities["Philadelphia"]=12;
enemyTally.cities["Boston"]=0;
enemyTally.cities["New York"]=0;
enemyTally.getTally=new function(level){...}//should return 12
enemyTally.add=new function(level){...}
当我尝试使用以下代码运行其中一些时:
var level="Philadelphia";
var val=data.getValue(level);
//var val2=enemyTally.getTally(level);
document.writeln(data.checkValues("level"));
document.writeln(data.getValue("level"));
document.writeln(enemyTally.getTally(level));
我的网页会显示true 109
而不是true 109 12
。我不知道为什么它没有加载其他文件。我知道getTally()
不是错误,因为它与data.getValue
相同。我记录的唯一原因是因为我从我更复杂的项目中复制了它,看看它是否适用于此。我对JavaScript完全不熟悉 - 我是来自Java与朋友一起开展项目 - 这让我很难过。我注意到如果我恢复注释掉的var声明,那么整个事情都不起作用 - 没有什么可写的。
我已经做了一些阅读,这让我觉得它可能是整个异步加载的问题,但重新加载页面或浏览器并不能解决它。它在Firefox和Chrome中都做同样的事情。我可以编写我的函数来做我想做的事情,文件的一般结构似乎适合我正在做的事情,但它们不会加载,这让我疯狂。任何简单的JS帮助将不胜感激。谢谢!
编辑:我编辑了代码以显示我的问题和解决方案(结果是没有将我的代码复制到SO中我实际修复了问题,这使得你们很难修复。)我之前有“新”我在敌人的功能。哎呦。感谢那些提供帮助的人。
答案 0 :(得分:1)
您可能需要tally
而不是Tally
document.write(tally.getTally(level));