我对可链接性有疑问,看看这段代码:
document.getElementById('menu').fadeIn(200, function(){ //callback });
如何在没有jQuery的情况下实现这一目标?
注意:名称 fadeIn()和 fadeOut()例如,没有jQuery函数。
答案 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');