0

ライブラリ内の小さな/大きな関数を支援する小さなライブラリを作成しています...すべて正常に動作しますが、オブジェクトを返したいだけの場合は、_(".class");jQueryのものと同じようにやりたいです...

これは私のもののベースコードです...

var Test = function(elm){
                if(elm != undefined){
                    Test.DOMSelection(elm);
                }


                return {
                    html:function(newHTML){
                        return Test.html(newHTML);
                    }
                };
            };

_(".class").bla のようなセレクターの後に何かがあるかどうかをテストするにはどうすればよいですか?

4

1 に答える 1

4

簡単な答え:できません。

以前の計算 (関数入力と現在の状態) のみを使用でき、チェーン内のまだ発生していない計算は使用できません。(JavaScript には公開された「式ツリー」の概念はありませんが、「ビルダー パターン」ははるかに冗長な構文で同様の結果を得ることができます。)

が関数bla(およびそのように呼び出される) またはゲッター プロパティであり、適切なロジックが関数 (またはゲッター) に追加されている場合、そのロジックは、終了にが評価されるときに トリガーできます。bla class


jQuery はメソッド チェーンを使用します。チェーンできる各 jQuery メソッドは、新しいjQuery オブジェクトを返します。ただし、jQuery は、次に何が呼び出されるかについて、JavaScript では不可能な先を見越すことはありません。このことを考慮:

// Find *all* DIVs on the page
x1 = $('div');
// and for all the DIVs *previously found*, which are accessible by x1,
// find the one that has a given class
x2 = x1.filter('.foo');

x1 と x2 の両方が異なるjQuery オブジェクトを指定していることに注意してください。x1 の要素は入力 (html フォームとセレクター) を適用することによって取得され、x2 の要素は入力 (x1 の要素とセレクター) を適用して出力 (一致した要素x2)。

于 2013-04-28T21:54:41.333 に答える