首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >math.js未捕获的TypeError: v不是p5的函数

math.js未捕获的TypeError: v不是p5的函数
EN

Stack Overflow用户
提问于 2019-08-23 21:24:26
回答 1查看 328关注 0票数 0

我讨厌问这个问题,但我已经看过了每一个堆栈溢出的帖子,用mathjsmath.js标记,以及一大堆"x不是一个函数“的帖子,但没有一个是相关的或有帮助的。这是我在Google Chrome中获得的完整堆栈跟踪:

代码语言:javascript
复制
Uncaught TypeError: v is not a function
    at p (math.js:1741)
    at typed (eval at p (math.js:1740), <anonymous>:15:16)
    at Object.r [as factory] (math.js:15041)
    at t (math.js:232)
    at Object.n [as factory] (math.js:30335)
    at t (math.js:232)
    at Object.n [as factory] (math.js:30256)
    at t (math.js:232)
    at Object.n [as factory] (math.js:29710)
    at t (math.js:232)

请注意,没有一个错误指向我的代码,如果我尝试在控制台中调用任何数学方法,都会得到相同的错误。

我使用p5.js只是为了给我的网站做一个交互式的小东西,我需要math.js的表达式解析功能。

下面是我的html文件:

代码语言:javascript
复制
<html>
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>2D plotter</title>

  <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjs/3.3.0/math.min.js"></script> <!-- here's where I load math.js from a cdn -->
  <!-- PLEASE NO CHANGES BELOW THIS LINE (UNTIL I SAY SO) -->
  <script language="javascript" type="text/javascript" src="libraries/p5.min.js"></script>
  <script language="javascript" type="text/javascript" src="Function.js"></script>
  <script language="javascript" type="text/javascript" src="Plot.js"></script>
  <script language="javascript" type="text/javascript" src="WebsitePlotter2D.js"></script>
  <!-- OK, YOU CAN MAKE CHANGES BELOW THIS LINE AGAIN -->

  <!-- This line removes any default padding and style.
       You might only need one of these values set. -->
  <style> body { padding: 0; margin: 0; } </style>
</head>

<body>
</body>
</html>

当处理编辑器生成原始html文件时,“请不要更改”行就在那里,我还没有弄乱它。这里是调用math.js库的代码,尽管在这一点上我确信它是不相关的:

代码语言:javascript
复制
draw() {
  let lastPoint = null;
  let nx, ny, y;
  const parser = math.parser();

  stroke(this.lineColor);
  strokeWeight(this.lineWeight);
  for (let xv=this.plot.xStart; xv<this.plot.xStop; xv+=this.step) {
    parser.set('x', xv);
    y = parser.evaluate(this.func);
    ny = this.plot.scalePixelY(y);
    nx = this.plot.scalePixelX(xv);
    if (lastPoint !== null && 4) {
      line(lastPoint.xVal, lastPoint.yVal, nx, ny);
    }
    lastPoint = {xVal: nx, yVal: ny,};
  }
}

此外,如果我转到回溯中引用的math.js中的行,就会发现没有方法调用,甚至没有v的变量名,所以我不确定发生了什么。任何帮助都很感谢,我想把这个愚蠢的错误抛在脑后。

EN

回答 1

Stack Overflow用户

发布于 2019-08-23 21:40:23

所以我花了大约一个小时来解决这个问题,当然,在创建一个关于它的堆栈溢出问题10分钟后,我找到了解决方案。

我刚把CDN的url换成了"https://cdnjs.cloudflare.com/ajax/libs/mathjs/6.1.0/math.js",它就起作用了。这让我想知道为什么有这么多关于math.js的信息已经过时了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57627306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档