2

私のページ (myScript.js) には、次のスクリプトが含まれています。

   function constr(args) {
        var param1 = args;

        function drawTable(element, tableRows) {
           // code that creates table with rows = tableRows and appends table to the passed element
        }

        drawContainer(); // call to and extended functionality
    }

var obj = new constr(10);

しかし、obj を他のプライベート メソッドで拡張する必要があります。これらのメソッドは別のスクリプト (myScript2.js) から読み込まれ、一部のメソッドは constr でいくつかのプライベート メソッドをオーバーライドする必要があります。また、拡張メソッドは、constr 内の param1 およびその他のプライベート変数を操作できる必要があります。理想的には、すべてが非公開になります。

myScript2.js には、次のようなものが必要です

constr.prototype = (function() {
   return {
     constructor:constr,
     drawContainer: function() {
         var container = document.createElement("DIV");

         document.append(container);
         drawTable(container, param1);
     }
   }
})();

次のプロトタイプを実行することで、constr 関数を別のプライベート クラス「drawContainer」で拡張し、param1 にアクセスして元の constr 関数から drawTable を呼び出すことができると仮定します。

次の例は機能しません。私がそれをしている理由のアイデアは、必要に応じて追加機能をページにロードする js オブジェクトのモジュールが必要だということです。

4

0 に答える 0