2017-02-19 3 views
-4

Привет Я хочу создать новый объект блоб:Ошибка при вызове конструктора объекта

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»: Первый аргумент не является массивом и не имеет индексированных свойств.

+1

Это не то, как работает «Blob». Внимательно прочитайте документы. – Xufox

+1

Не совсем понятно, что вы здесь делаете. Вы пытаетесь создать фактический Blob: https://developer.mozilla.org/en-US/docs/Web/API/Blob? Если это так, эти аргументы неверны, и я уверен, что вы все равно не пытаетесь это сделать. – thesublimeobject

+0

хорошо sry guys JUST IMAGINE BLOB будет круг или около того – motschel123

ответ

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, потому что это имя встроенной функции.

0

Не уверен, чего вы хотите достичь точно, но поскольку сообщение об ошибке говорит о том, что вы передаете неправильные аргументы при создании blob. Например, вы можете передать список, так что будет создан blob:

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

Но, пожалуйста, предоставьте более подробную информацию.

Смежные вопросы