0

我正在制作一个小型库,它将帮助我的库中的小/大功能......一切正常,但如果我只想返回对象,我想像_(".class");jQuery 的那样做......

这是我的基本代码...

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


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

我如何测试像 _(".class").bla <-- 这个 bla 在最后......我如何测试他们是否有任何东西?

4

1 回答 1

4

简短的回答:不可能。

只能使用先前的计算(函数输入和当前状态),不能使用链中尚未发生的进一步计算。(JavaScript 没有公开“表达式树”的概念,尽管“构建器模式”可以通过更冗长的语法实现类似的结果。)

如果bla是一个函数(并被这样调用)或一个 getter 属性,并且适当的逻辑被添加到函数(或 getter),那么该逻辑可以 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 回答