Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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问题,(未定义的鼠标事件)书';s示例代码不工作?_Javascript - Fatal编程技术网

初学者Javascript问题,(未定义的鼠标事件)书';s示例代码不工作?

初学者Javascript问题,(未定义的鼠标事件)书';s示例代码不工作?,javascript,Javascript,我只是从JavaScript和编程开始。当我试图从外部utils.JS文件中使用时,本JS书提供的示例代码在控制台日志中提供了一个未定义的函数。我不知道为什么它没有定义。该文件的路径是正确的,因为我的IDE找到了它。你知道为什么它没有定义吗? 这是主页 <canvas id="canvas" width="400" height="400"></canvas> <script src="js/utils.js"></script>

我只是从JavaScript和编程开始。当我试图从外部utils.JS文件中使用时,本JS书提供的示例代码在控制台日志中提供了一个未定义的函数。我不知道为什么它没有定义。该文件的路径是正确的,因为我的IDE找到了它。你知道为什么它没有定义吗? 这是主页

<canvas id="canvas" width="400" height="400"></canvas>
        <script src="js/utils.js"></script>
        <script>
            window.onload = function() {
                var canvas = document.getElementById('canvas');
                mouse = utils.captureMouse(canvas);
                canvas.addEventListener('mousedown', function(event) {
                    console.log("x:" + mouse.x + ",y:" + mouse.y);
                }, false);
            };
        </script>
这是控制台输出

file:C:/projects/js/utils.js
ReferenceError: utils is not defined utils.js:1
ReferenceError: utils is not defined main.html:14

提前谢谢

此处出现错误:
utils.captureMouse
,因为尚未定义
utils
,因此无法向其添加属性。在该行之前添加一行:

utils = utils || {};

这是一种将变量初始化为空对象(如果尚未初始化)的简便方法。n通常在声明变量时,还应使用
var
关键字,但在这种情况下,似乎希望
utils
成为全局变量。

您需要在
utils.captureMouse
之前定义
utils
杨扬-莫莫说

var utils = {};
utils.captureMouse = function(element) {

utils
在您定义它之前不是对象。

在分配utils.captureMouse之前需要初始化
utils={}
。这很有效,谢谢!我不知道为什么这本书没有提到定义UTIL。谢谢你的回复,但是我在使用UTIL.captureMouse=function(element)之前使用你的建议时也遇到了同样的错误。但如果我只是对UTIL使用一个直接的var,它确实起了作用。
var utils = {};
utils.captureMouse = function(element) {