Вопрос

Я писал какой -нибудь 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 ++, конструкторы не возвращай ничего.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top