Должен ли класс JavaScript явно что -то вернуть?
-
29-09-2019 - |
Вопрос
Я писал какой -нибудь Adobe Illustrator Javascripts, чтобы улучшить свой рабочий процесс. В последнее время я действительно занимался OOP, поэтому я писал его с использованием объектов, и я действительно думаю, что это помогает поддерживать мой код чистым и легко отводившимся. Однако я хотел проверить с вами лучшую практику, ребята.
У меня есть прямоугольный объект, который создает (три предположения) ... прямоугольник. Это похоже на это
function rectangle(parent, coords, name, guide) {
this.top = coords[0];
this.left = coords[1];
this.width = coords[2];
this.height = coords[3];
this.parent = (parent) ? parent : doc;
var rect = this.parent.pathItems.rectangle(this.top, this.left, this.width, this.height);
rect.name = (name) ? name : "Path";
rect.guides = (guide) ? true : false;
return rect;
}
Однако код работает нормально с или без этого последнего
return rect
Итак, мой вопрос в том, что делает
new rectangle(args);
Вернитесь, если я не говорю так?
Если я сделаю это:
var myRectangle = new rectangle(args);
myRectangle.left = -100;
Это работает просто нормально, я return rect
или не.
Большое спасибо за помощь.
Решение
Ваш объект JavaScript должен иметь только свойства и методы.
Используйте ключевое слово возврата внутри метода.
function rectangle(parent, coords, name, guide) {
this.top = coords[0];
this.left = coords[1];
this.width = coords[2];
this.height = coords[3];
this.parent = (parent) ? parent : doc;
this.draw = function () { // add a method to perform an action.
var rect = this.parent.pathItems.rectangle(this.top, this.left, this.width, this.height);
rect.name = (name) ? name : "Path";
rect.guides = (guide) ? true : false;
return rect;
};
}
Как бы вы использовали свой объект.
var myRectangle = new rectangle(args);
myRectangle.draw();
Другие советы
Абсолютно ненуж. Экземпляр будет создан и назначен автоматически при вызове new
. Анкет Не нужно возвращаться this
Или что -нибудь подобное.
В строго ООП, как Джава или C ++, конструкторы не возвращай ничего.