【问题标题】:JavaScript: uncaught reference error: erik is not definedJavaScript:未捕获的引用错误:未定义 erik
【发布时间】:2013-04-10 08:27:54
【问题描述】:

我正在编写一个小实用程序,可以让我更轻松地使用画布。但是,当我运行代码时,我得到了错误Uncaught SyntaxError: Unexpected token = (erik.core.js:5)Uncaught ReferenceError: erik is not defined (test.html:14( (anonymous function)

这是我的 HTML 代码:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>ErikJs Unit Testing</title>
    <script src="erik.core.js"></script>
    ...
</head>
<body>
    ...
    <canvas id="myCanvas" width="500" height="400"></canvas>

    <script>
    var ctx = erik.initCanvas("#myCanvas");

        ctx.beginPath();
        ctx.moveTo(100, 200);
        ctx.lineTo(200, 300);
        ctx.stroke();
    </script>
</body>
</html>

还有 JavaScript (erik.core.js):

var Erik = function () {    
    this.author = "Erik Royall";
};

Erik.prototype.initCanvas = function ( element, y = '2d' ) {
    this.canvas = document.querySelectorAll( element );
    this.context = canvas.getContext( y );
    return this.context;
};

var erik = new Erik();

【问题讨论】:

  • 我建议你 youtube.com/watch?v=c66pvfilotA
  • i suggest you youtube.com/watch?v=c66pvfilotA 你给我什么建议?

标签: javascript syntax-error referenceerror


【解决方案1】:

JavaScript 没有默认参数值。从函数声明中删除y = '2d'

另见Set a default parameter value for a JavaScript function

【讨论】:

  • 虽然很有趣;当我在 Firefox firebug 控制台中复制代码并运行它时,它并没有出现。也许这仅适用于某些浏览器。您可以删除 y 部分,如果未定义:y=(y===undefined)?'2d':y;
【解决方案2】:

在 johusman 的回答中,默认参数现在是 ECMAScript 6 的一部分,这意味着这在支持此功能的 JS 引擎上应该是完全有效的。对于尚不支持默认参数的引擎,esnext 项目提供了一个转译器,可从项目GitHub page 获得。

【讨论】:

    猜你喜欢
    • 2021-09-19
    • 1970-01-01
    • 2013-10-27
    • 2011-09-25
    • 2021-11-01
    • 2017-11-22
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多