Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.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_Object - Fatal编程技术网

Javascript 从不同的文件调用对象中的方法?

Javascript 从不同的文件调用对象中的方法?,javascript,object,Javascript,Object,大家好,我决定重构我的javascript,并尝试将我的onpage脚本分离到外部js文件 如果我错了,请纠正我,我还是javascript新手,但这是我当前的设置:- 我的外部文件:- exJS = function(){ this.coolMethod = function(){ //do cool code here } } 联机脚本:- <script type="text/javascript" src="ex_js.js"></scrip

大家好,我决定重构我的javascript,并尝试将我的onpage脚本分离到外部js文件

如果我错了,请纠正我,我还是javascript新手,但这是我当前的设置:- 我的外部文件:-

exJS = function(){

  this.coolMethod = function(){
        //do cool code here
  }
}
联机脚本:-

<script type="text/javascript" src="ex_js.js"></script>
<script>
 exJs = new exJS();
 exJs.coolMethod();
</script>

exJs=新的exJs();
exJs.coolMethod();
显然我做错了什么,我怎么能从不同的文件调用对象中的方法呢

我也欢迎更好的建议来执行这项工作

多谢各位



更新:它不起作用,因为我没有在对象中定义的函数之间放置逗号。。。愚蠢的错误

我会考虑使用名称空间(或者至少Java脚本尝试使用名称空间)

下面是一个例子,公认的答案说明了如何做到这一点


@dystroy在他的回答中也有一个这样的例子。

我会考虑使用名称空间(或者至少javascripts尝试使用名称空间)

下面是一个例子,公认的答案说明了如何做到这一点

@dystroy在他的回答中也有一个这样的例子。

您所做的很好(除了错误关闭的第一个脚本元素),但是如果您不想要多个exJS实例,则可能不需要

我建议使用以下小变体:

外部文件:

var exJS = {
  coolMethod: function(){
        //do cool code here
  }
}
<script type="text/javascript" src="ex_js.js"></script>
<script>
 exJs.coolMethod();
</script>
主页脚本:

var exJS = {
  coolMethod: function(){
        //do cool code here
  }
}
<script type="text/javascript" src="ex_js.js"></script>
<script>
 exJs.coolMethod();
</script>
您所做的很好(除了关闭得很糟糕的第一个脚本元素),但是如果您不想要多个exJS实例,那么可能不需要这样做

我建议使用以下小变体:

外部文件:

var exJS = {
  coolMethod: function(){
        //do cool code here
  }
}
<script type="text/javascript" src="ex_js.js"></script>
<script>
 exJs.coolMethod();
</script>
主页脚本:

var exJS = {
  coolMethod: function(){
        //do cool code here
  }
}
<script type="text/javascript" src="ex_js.js"></script>
<script>
 exJs.coolMethod();
</script>

为什么“显然”你做错了什么?你可以做得简单一点,但似乎没有错。你为什么认为自己做错了什么?什么不起作用,会出现什么错误?请注意,您没有正确关闭第一个脚本元素。代码正常。首先创建exJS实例,然后执行该实例的coolMethod这是一个愚蠢的错误,因为我在一个对象中声明了多个函数,我忘了用逗号分隔它们,这就是为什么我没有工作。。。谢谢你为什么“显然”你做错了什么?你可以做得简单一点,但似乎没有错。你为什么认为自己做错了什么?什么不起作用,会出现什么错误?请注意,您没有正确关闭第一个脚本元素。代码正常。首先创建exJS实例,然后执行该实例的coolMethod这是一个愚蠢的错误,因为我在一个对象中声明了多个函数,我忘了用逗号分隔它们,这就是为什么我没有工作。。。谢谢各位