1

ワークフローを改善するために、いくつかの Adob​​e Illustrator JavaScript を作成しています。私は最近、OOP に本当に慣れてきたので、オブジェクトを使用してそれを書いています。これは、コードをクリーンに保ち、簡単に更新できるようにするのに役立つと本当に思っています。ただし、皆さんと一緒にベストプラクティスを確認したかったのです。

私は(3つの推測)...長方形を作成する長方形オブジェクトを持っています。このように見えます


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;
}

ただし、コードは最後がなくても OR で正常に動作します

return rect

だから私の質問は何ですか

new rectangle(args);
私が明示的にそう言わなければ戻りますか?

私がこれを行う場合:


var myRectangle = new rectangle(args);
myRectangle.left = -100;

私であろうとなかろうと、それはうまく機能しreturn rectます。

助けてくれてどうもありがとう。

4

2 に答える 2

1

絶対に不要です。を呼び出すと、インスタンスが作成され、自動的に割り当てられますnew。返す必要thisなどありません。

JavaC++などの厳密な OOP 言語では、コンストラクターは何も返しません

于 2010-10-13T08:27:37.803 に答える
0

JavaScript オブジェクトには、プロパティとメソッドのみを含める必要があります。

メソッド内で return キーワードを使用します。

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();
于 2010-10-13T08:49:05.890 に答える