私は自分の小さな jquery のようなライブラリを構築しようとしていますが、この連鎖パターンを作成するのに非常に苦労しています。基本的に、ドキュメントの操作を容易にする一連のメソッドを備えた 1 つのクラスがあります。これが例です
function MF(selector){
var DO; // Stands for DocumentObject
this.select = function(selector){
return document.getElementById(selector);
}
if(typeof selector === 'string'){
DO = this.select(selector);
}else if(selector instanceof HTMLElement){
DO = selector;
}
this.children = function children(selector){
return DO.getElementsByClassName(selector);
}
return {
MF: ???
}
}(null);
私の反省は間違っているかもしれませんが、ドキュメント オブジェクト ( html 要素) に追加のメソッドを追加するには、HTMLElement プロトタイプを拡張するか、クラスと共に要素を渡す必要があることがわかりました。私は2番目のオプションを選択しました。クラスで何を返す必要があるのか わからないので、連鎖を続けることができます。この例のために、私が単に目指しているのは、次のコード行を記述できるようにすることです。
MF('someDiv').children('someClass');
絶望的な試みでMF
、デフォルトではインスタンスを持たないはずの新しいインスタンスを返そうとしましたが、無限ループに陥りました。そこに何を返せばいいのかわからない。どんな助けでも大歓迎です!