Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.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 未捕获引用错误:未定义X-在js文件上声明对象,在html按钮事件中进行引用_Javascript_Javascript Objects_Dom Events - Fatal编程技术网

Javascript 未捕获引用错误:未定义X-在js文件上声明对象,在html按钮事件中进行引用

Javascript 未捕获引用错误:未定义X-在js文件上声明对象,在html按钮事件中进行引用,javascript,javascript-objects,dom-events,Javascript,Javascript Objects,Dom Events,我想在js文件中定义一个Javascript对象,并允许用户通过在头部调用src,然后使用“new”在其HTML上创建它的新实例。[也许这不是最好的方法,但请容忍我]——非常基本的东西,对吗 JS文件myFile.JS中的代码: function myObject(){ this.myMethod = thisMethod; function thisMethod(){ return 2; } } HTML代码: <head> <script

我想在js文件中定义一个Javascript对象,并允许用户通过在头部调用src,然后使用“new”在其HTML上创建它的新实例。[也许这不是最好的方法,但请容忍我]——非常基本的东西,对吗

JS文件myFile.JS中的代码:

function myObject(){
   this.myMethod = thisMethod;

   function thisMethod(){
     return 2;
   }
}
HTML代码:

<head>
  <script type="text/javascript" src="http://myserver/myFile.js">
     var customObject = new myObject();     
  </script>
</head>
<body>
   <input type="button" value="Click Me" onclick="alert(customObject.myMethod());">
</body>
但这违背了让用户创建对象并随意使用它的目的

当然,我的结构有问题,但我所有的研究都没有给我一个线索。我认为引入js文件与将代码放在头部的脚本标记中并在那里实例化对象是一样的——因为如果我这样做,而不调用.js,它就会工作

我有很多理论,其中一些是关于事件和加载顺序的,但我不想把这个问题弄得一团糟


问题是:如何在js文件中定义对象,然后让用户在HTML中实例化并调用其方法?(特别是对于像onclick这样的事件)

问题在于不能使用同一个标记来同时包含外部资源和定义javascript代码。您必须使用两个单独的标记,否则您在标记中放置的任何代码都将被忽略。这很好:

<script type="text/javascript" src="http://myserver/myFile.js"></script>    
<script type="text/javascript">
    var customObject = new myObject();     
</script>

var customObject=新的myObject();

希望有帮助,

谢谢!这正是问题所在。我想得太多了,错过了最基本的东西。太好了!请将帖子标记为已回答,以便帮助他人。
<script type="text/javascript" src="http://myserver/myFile.js"></script>    
<script type="text/javascript">
    var customObject = new myObject();     
</script>