在jQuery等Javascript对象中启用可链接性

时间:2012-01-09 14:38:19

标签: javascript

我对可链接性有疑问,看看这段代码:

document.getElementById('menu').fadeIn(200, function(){ //callback });

如何在没有jQuery的情况下实现这一目标?

注意:名称​​ fadeIn() fadeOut()例如,没有jQuery函数。

2 个答案:

答案 0 :(得分:5)

  

“方法链接是调用多个方法的常用技术   调用面向对象的编程语言。每个方法返回一个   对象(可能是当前对象本身),允许调用   在一个声明中链接在一起。方法链也是   由于堆积的方法数量增加而被称为火车残骸   接连不断。“

//Create an object which contains functions
var obj={
        alert : function(txt){
                alert(txt);
                return this   //return itself
        },
        confirm :function(txt){
                confirm(txt);
                return this   //return itself
        }
}

//Now you can chain as much as you want
obj.alert("This").alert("is").confirm("called").alert("chaining.");

来源:

答案 1 :(得分:1)

为了允许可链接性,您的方法必须返回包含对象(有时,提供一个回调机制来管理一些返回数据):

var chainable ={
        doSomething : function(input, callback){
          //do something with the input
          var output = input;
          if (callback && typeof(callback) === "function") {
              callback(output);
          }
          return this;
        }
}

    chainable.doSomething('test', function(data) {
      alert(data);
    })
    .doSomething('anotherString');