Работа с объектом JS. Что-то не так с this?

Есть примерно такой код
function tratata(){
this.draw = function(){
this.figure=function(){
....
}
}
}

После того, как я пишу
var a = new tratata()
a.draw().figure();

Выдает примерно такое => Cannot read property 'figure' of undefined
Что не так?

Вот конкретно код
function ttt(){
this.draw = function(){
        this.triangle = function(x,y,a){
          let h = Math.round(a*Math.sqrt(3)/2);
          ctx.beginPath();
          ctx.moveTo(x,y-Math.round(2*h/3));
          ctx.lineTo(x+Math.round(a/2),y+h);
          ctx.lineTo(x-a,y);
          ctx.lineTo(x+Math.round(a/2),y-h);
          this.stroke = function(color){
            ctx.strokeStyle=color;
            ctx.stroke();
          };

        };
      };
};

Хотелось бы при написании примерно такого
var a = new ttt();
a.draw().triangle(100,100,100).stroke('white);

рисовался на канвасе треугольник с координатами 100 100 и стороной 100)
  • Вопрос задан
  • 114 просмотров
Пригласить эксперта
Ответы на вопрос 2
a.draw().figure()- это то же самое, что и
var drawResult = a.draw();
drawResult.figure();

hint: draw ничего не возвращает
Ответ написан
AloneCoder
@AloneCoder
[object Object]
У вас так
function tratata(){
	this.draw = function(){
		this.figure=function(){}
	}
}

а надо видимо так
function tratata(){
  this.draw = function(){}
  this.figure=function(){}
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы