0

私はノックアウトが初めてです。これら3つの違いと、最新のフレームワークごとにどれが最適かを知りたいです。

アプローチ 1 (InvoiceTypes): コンマを使用してすべての変数とメソッドを宣言し、最後に return ステートメントを使用してパブリック インターフェイス メソッドを公開します。

アプローチ 2 (OrderTypes): アプローチ 1 と似ていますが、セミコロンを使用して各変数またはメソッドを区別しています。

アプローチ 3 (ModelTypes): アプローチ 2 に似ていますが、return ステートメントはありません。

最後にjquery readの各アプローチでのstartメソッドの呼び出し方を指定。

アプローチ1

    window.Domain = window.Domain || {}
    window.Domain.InvoiceTypes = function () {

        var types = ko.observableArray(),
        getTypes = function() { return types; },
        start = function() {
            types.push({name:"knockout"});
        },
        submit = function() {
            alert("submit");
        };

        return {
            getTypes: getTypes,
            start: start,
            submit: submit
         };   
   }();

アプローチ 2

    window.Domain.OrderTypes = function () {

        var types = ko.observableArray();

        var getTypes = function() { return types; };

        var start = function() {
            types.push({name:"knockout"});
        };
        var submit = function() {
            alert("submit");
        };

        return {
            getTypes: getTypes,
            start: start,
            submit: submit
         };   
   }();

アプローチ 3

    window.Domain.ModelTypes = function () {
        var self = this;

        self.types = ko.observableArray();
        self.getTypes = function() { return types; };
        self.start = function() {
            types.push({name:"knockout"});
        };
        self.submit = function() {
            alert("submit");
        };

   };

   <script type="text/javascript">
       $(document).ready(function() {

         window.Domain.InvoiceTypes.start();

         window.Domain.OrderTypes.start();

         var obj = new window.Domain.ModelTypes();
         obj.start();
       });
   </script>

明確にわかる違いは、単一の var 宣言と return ステートメント、およびこのキーワードによる self の使用です。

入力してください。

4

1 に答える 1