用子方法链接的方法

时间:2015-10-03 05:59:29

标签: javascript methods method-chaining

我正在尝试使用子方法的方法链。

IE:foo("bar").do.stuff()

捕获stuff()需要引用bar("bar")

的值

是否有this.callee或其他此类参考来实现此目的?

2 个答案:

答案 0 :(得分:3)

  

是否有任何this.callee或其他此类参考来实现此目的?

不,您必须让foo返回一个带有do属性的对象,其中包括:

  1. 通过调用stuff

  2. 使foo成为封闭
  3. foo("bar")获取您想要的信息作为do的属性,然后通过{{1}从stuff对象引用do中的信息},或

  4. 
    
    this
    
    // Closure example:
    function foo1(arg) {
      return {
        do: {
          stuff: function() {
            snippet.log("The argument to foo1 was: " + arg);
          }
        }
      };
    }
    foo1("bar").do.stuff();
    
    // Using the `do` object example (the `Do` constructor and prototype are just
    // to highlight that `stuff` need not be a closure):
    function Do(arg) {
      this.arg = arg;
    }
    Do.prototype.stuff = function() {
      snippet.log("The argument to foo2 was: " + this.arg);
    };
    function foo2(arg) {
      return {
        do: new Do(arg)
      };
    }
    foo2("bar").do.stuff();
    
    
    

答案 1 :(得分:1)

尝试将dostuff设置为foo的属性,在foo返回传递给stuff的参数,从{{返回this 1}}



foo