2

アドバイスをお願いします。typescript を使用してダイアログ ボックスを作成しています。作成されると、独自の送信ボタンがあり、独自のチェックを行うため、自分で処理します。

次の 2 つのコーディング方法のいずれかに利点または欠点はありますか? これまでのところ、エクスポートを使用したモジュール アプローチでは、関数を非表示にして、エクスポートしない場合は非公開にすることができるということしかわかりません。static を使用して private 修飾子を使用しようとすると、IntelliSense でロック アイコンが表示されますが、それでも使用できます。

module Dialog {
    export class Modal {
        static createAccessModal(link: Link) {
            createModal(link);
        }
        static createAdminModal(link: Link) {
            link.Modal.MaxHeight = 600;
            link.Modal.Width = false;
            createModal(link);
        }
        static private createModal(link: Link) {

            ...
        }
    }
}

またはやっている:

module Dialog {
    export module Modal {
        export function createAccessModal(link: Link) {
            createModal(link);
        }
        export function createAdminModal(link: Link) {
            link.Modal.MaxHeight = 600;
            link.Modal.Width = false;
            createModal(link);
        }
        function createModal(link: Link) {

            ...
        }
    }
}
4

1 に答える 1

2

モジュールアプローチは、達成しようとしているものに適しています。

クラス フォームを使用している場合は、オブジェクト インスタンスを新しく作成することは決してなくても、実質的にコンストラクター関数を定義し、真にプライベートにすることはできません (ご覧のとおり) コンストラクター関数に直接メンバーを追加します。

モジュール アプローチを使用すると、オブジェクトを構築するだけです。エクスポートしないメンバーは、オブジェクトをセットアップするクロージャー内に含まれます。これにより、真のプライバシーが得られます。

両方の効果を確認する良い方法は、それぞれのコードをhttp://www.typescriptlang.org/Playground/に貼り付けて、生成されたコードを分析することです。

于 2012-11-20T08:05:24.813 に答える