У меня очень базовый вопрос c. В JavaScript я написал класс, занимающийся рисованием трехмерных объектов, который имеет в своем составе конструктор и два метода:
class Editor {
constructor(canvasElement) {
this.c = canvasElement;
this.ctx = this.c.getContext("2d");
this.origin = {};
this.container = {
vertex: []
};
(... blah blah...)
}
setVertex(x, y, z) {
this.container.vertex.push({ x: x, y: y, z: z });
return { x: x, y: y, z: z };
}
setAsOrigin() {
this.origin = {...this , anotherBunchOfParams: []};
(... workaround with the origin..)
return this.origin;
}
}
var E = new Editor();
( ??? - Expression below throwing errors right now)
Вопрос: как правильно написать следующее выражение:
E.setVertex(1, 2, 3).setAsOrigin();
чтобы он правильно компилировался, код остался верным, а типы возвращаемых данных остались прежними?
Я хотел бы сохранить синтаксис выражения как есть, поэтому без bind(this)
в выражение (все, что разрешено изменять внутри 2 функций / конструктора)
Большое спасибо!
PS: я искал весь стекопоток для привязки функции, не найдя ответа (хотя это возможно и где-то, но небольшие шансы :) - Как называется термин 'connecting'
нескольких функций, подобных этой? Знал, что в Java вы могли бы использовать this
как the instance calling your function
, но, кажется, this
, по крайней мере, в этом случае, означает по какой-то причине window