سؤال

لقد كنت أكتب بعضًا من 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 أو أي شيء من هذا القبيل.

في لغات OOP بدقة مثل جافا أو C ++, ، البنائين لا تعيد أي شيء.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top