调用对象构造函数时出错

时间:2017-02-19 15:00:07

标签: javascript html

您好我想创建一个新的blob对象:

function Blob(X,Y,R) {
this.x = X;
this.y = Y;
this.r = R;

this.show = function (ctx) {
    ctx.arc(this.x,this.y,this.r,0,2*Math.PI,false);
    ctx.fill();
}

this.moveTo = function(x,y,ctx){
    ctx.strokeStyle = "#ffffff"
    ctx.arc(this.x,this.y,this.r,0,2*Math.PI,false);
    ctx.fill();
    ctx.strokeStyle = "#000000"
    ctx.arc(x,y,r,0,2*Math.PI,false);
    ctx.fill();
}

    var myBlob = new Blob(250,250,50);
    blob.show(ctx);

当我创建对象时,我收到一条错误消息:

Uncaught TypeError:无法构造'Blob':第一个参数既不是数组,也不是索引属性。

2 个答案:

答案 0 :(得分:0)

您需要提供完整的代码。

根据你所拥有的,你没有一个名为Blob的类。你也没有名为show的功能。

如果您需要了解更多信息,请查看https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Classes

class BlobClass {
  constructor(x, y, r) {
   this.x = x;
   this.y = y;
   this.r = r;
  }

  get show() {
    ctx.strokeStyle = "#ffffff"
    ctx.arc(this.x,this.y,this.r,0,2*Math.PI,false);
    ctx.fill();
  }
}

const blob = new BlobClass(10, 10, 10);

blob.show()

这应该做我认为你想做的事情。您可能不会将类命名为Blob,因为这是特征中构建的名称。

答案 1 :(得分:0)

不确定您想要实现的目标,但正如错误消息所示,您在创建blob时传递了错误的参数。例如,您可以传递一个列表,因此将创建一个blob:

var myBlob = new Blob([250,250,50]);

但请提供更多详情。