如何调用另一个函数中的函数javascript
我有两个文件,如下所示: trycapture.js如何调用另一个函数中的函数javascript,javascript,function,function-calls,Javascript,Function,Function Calls,我有两个文件,如下所示: trycapture.js trycapture(){ ... some code function drawaggregate(){ ... definition } } .. some variables var try_obj = new trycapture(); try_obj.drawAggregate(emit_x1,emit_y1,emit_x2,emit_y2); main.js trycapture(){ ... some code fun
trycapture(){
... some code
function drawaggregate(){
... definition
}
}
.. some variables
var try_obj = new trycapture();
try_obj.drawAggregate(emit_x1,emit_y1,emit_x2,emit_y2);
main.js
trycapture(){
... some code
function drawaggregate(){
... definition
}
}
.. some variables
var try_obj = new trycapture();
try_obj.drawAggregate(emit_x1,emit_y1,emit_x2,emit_y2);
HTML
<head>
<script src="trycapture.js"></script>
<script src="js/main.js"></script>
</head>
我如何调用该函数。在调用drawaggregation()之前,我尝试创建一个对象,如上图所示:
我仍然得到错误:
TypeError:try_obj.drawaggregate不是函数
此外,在index.html中,我确保在main.js之前包含trycapture.js。如何调用该函数?Add
this.drawaggregate = drawaggregate;
在函数定义之后,使其成为trycapture对象的公共方法
总的来说,您将把trycapture.js更改为以下内容:
function trycapture(){
... some code
// Locally accessible only
function drawaggregate(){
... definition
}
this.drawaggregate = drawaggregate; // Makes it publicly accessible also
}
然后可以像这样调用
drawaggregate()
方法:
var try_obj = new trycapture();
try_obj.drawaggregate();
你能发布完整的代码吗?你能提供一些关于函数设置的实际代码吗?如果没有看到你的源代码,就无法帮助解决你的问题。请检查,并包括一个。否则,此问题将被关闭。
console.log(try_obj)
首先查看try_obj
中的实际内容。它正在创建您期望的对象吗?您对drawaggregate
的调用是否使用了正确的大小写、拼写等?更多的代码可能会在这里有用:)您是否在HTML页面中同时包含这两个文件?trycapture.js是否包含在main.js之前?即使没有对象,我现在也可以调用该函数。这正常吗?是的,正常。这取决于许多事情,而且超出了这个评论框的范围。所以这里的解释可能是不完整和混乱的。示例1:如果您碰巧从一个匿名函数(如onload
事件侦听器)内部调用了new trycapture()
,那么trycapture
内部的将引用窗口
对象。因此,drawaggregate
将成为一个全局窗口函数,可以从任何地方调用。示例2:如果您在trycapture
函数命名空间内,则允许(并且应该)将drawaggregate
作为本地函数而不是对象的方法调用。