私のページ (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 オブジェクトのモジュールが必要だということです。