私が使用しているライブラリ(DataTables)は、すべてのカスタマイズされたオプションで宣言されたオブジェクトを受け入れます。
ライブラリが$.extend({}, defaults , confs)
のような結果設定を作成してユーザー定義オブジェクトを受け取ろうとすると、コードが失敗します。残念ながらconfs
で定義されたすべての方法は$.extend
の結果でこのコードが欠落している は、私は何をしようとしています説明:
class BaseConf {
constructor() {
this.ordering = false;
}
initComplete() {
console.log('BaseConf.foo executed');
}
}
class ExtendedConf extends BaseConf {
initComplete() {
super.foo();
console.log('ExtendedConf.foo executed');
}
}
conf = new ExtendedConf();
mergedConf = $.extend({}, conf);
console.log(mergedConf.ordering); // <-- print false
console.log(mergedConf.initComplete); // <-- print undefined
これが起こるとそれを修正する方法にはいくつかの提案理由の任意のアイデアを?
私はなぜコードが失敗するのか理解していますので、唯一の解決策は、$ .extendの使用を避けるためにライブラリ内のコードを変更することです。 –
@CarloVallergaが答えを更新しました。 – Joseph