访问不同文件中定义的javascript函数

访问不同文件中定义的javascript函数,javascript,callback,dojo,color-palette,Javascript,Callback,Dojo,Color Palette,我在访问不同位置定义的javascript函数时遇到了两个看似相关的问题。我遇到的第一个问题是调用我在firgbug或safari控制台中定义的函数。我定义了一个名为getRed的函数,如下所示: function getRed(row, col) { // do something stuff and return the red value as a float } 我希望能够从控制台测试这个函数,但每次我尝试调用getRed(1,1);例如,

我在访问不同位置定义的javascript函数时遇到了两个看似相关的问题。我遇到的第一个问题是调用我在firgbug或safari控制台中定义的函数。我定义了一个名为getRed的函数,如下所示:

    function getRed(row, col)
    {
           // do something stuff and return the red value as a float
    }
我希望能够从控制台测试这个函数,但每次我尝试调用getRed(1,1);例如,我得到如下错误:ReferenceError:getRed未定义

我是否需要进行特殊调用来定义名称空间?我在一个名为drawing.js的javascript文件中定义了这个函数,这个文件在我的html页面中很早就定义好了

我遇到的另一个问题是从dojo调色板的onChange:方法调用同一drawing.js文件中定义的函数。以下是调色板的代码:

<script type="text/javascript" src="drawing.js"></script>
 //the method colorChange is inside drawing.js which is defined before the dojo 
 //color palette
 <script src="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojo/dojo.xd.js"
djConfig="parseOnLoad: true">
</script>
<script type="text/javascript">
        dojo.require("dojox.widget.ColorPicker");
        dojo.addOnLoad(function() {
            var c = new dojox.widget.ColorPicker({
                onChange: function(val)
                {
                    console.log("BEFORE");
                    colorChange(val);
                    console.log("AFTER");
                }
            },
            "picker1");
        });
    </script>
每次单击调色板时,都会出现以下错误:ReferenceError:colorChange未定义

我对javascript非常陌生,我确信这两个问题有一个非常相似且简单的解决方案,但我一直无法在网上找到答案。有人能帮我吗

我非常确定脚本正在加载,如此屏幕截图所示:
无需额外配置,只需确保包含drawing.js,检查文件路径是否正确即可。如果正确的话,调用应该没有问题


只需检查您的js位置是否真实,如果您的js文件在根目录中,只需在位置前面添加斜杠,这样它将始终从www.example.com/drawing.js add attribute language=“javascript”加载到您的控制台,并且该控制台与您的页面在同一全局范围内。由于
getRed()
colorChange()
都是在drawing.js中定义的,并且在全局范围内都找不到,因此我怀疑drawing.js没有被正确地包括在内


要检查drawing.js是否包含在内(即文件路径是否正确),请转到Firebug的脚本选项卡。它将列出当前页面上包含的所有脚本。

这很奇怪,drawing.js为一个基于画布的2d像素编辑器定义了所有函数和事件处理,所有这些都可以工作,但我仍然无法从回调或控制台调用函数。drawing.js与我的html文件位于同一位置,因此我认为src=“drawing.js”应该是正确的。我不尝试调用控制台中定义的函数。我正试图从控制台调用javascript src文件中定义的函数。看起来脚本也已加载(我刚刚添加了一个显示此内容的屏幕截图)。嗯。。我使用drawing.js中定义的getRed()创建了一个快速原型,它可以正常工作。drawing.js中定义的其他函数是否未定义?或者这两个函数是在另一个函数中定义的?嗯,你是对的,我是在定义嵌套在另一个函数中的函数。。。嗯。非常感谢你!现在可以了。drawing.js实现类了吗?我的猜测是,
colorChange
不在全局范围内,因为它是在一个类中定义的..通过查看drawings.js中函数缩进的方式,我得出了相同的结论。你确定这不是foo.colorChange()吗?
    function colorChange(val)
{
    console("colorChange!");
}