所以...在JavaScript中乱搞一个对我来说很新的想法,让Object的方法返回它们是方法的Object; 这导致了可链接性.我的问题是:这怎么有用?我把它扔在一起测试基本工作:
这显然不是一个恶意高效的实例,人们会使用这个概念,所以你能指出我做的事情吗(除了jQuery,请)?
嗯,这是一个不太现实的适用例子,但我想你会明白这个想法.如果允许您对对象执行许多不同的操作,并提供方便.
var truck = function() { this.turnLeft = function { // turn left return this; } this.turnRight = function { // turn right return this; } this.goReallyFast = function { // go fast! return this; } }; // My get-away plan var myTruck = new truck(); myTruck.turnLeft().turnRight().goReallyFast();
流畅的界面 - http://en.wikipedia.org/wiki/Fluent_interface
是的,我认为它可能非常有用,但任何设计模式都应该只在需要时使用
编辑:这是使用流畅界面的c#中的twitter客户端api - http://code.google.com/p/tweetsharp/
对于一个非常不同的(非OO)示例,链接有点类似于Unix管道.Unix管道的每一步都返回完整(修改)的内容,适合发送到下一步:
cat file1 file2 | sort -n | awk '{print $2}' | sed 's/@/ at /g'
一个有用的例子就是你的问题略有不同 - 你可以将对象设计成不可变的,而不是返回相同的对象.然后你的函数将返回一个相同类型的新实例,但已经适当地设置了属性.
这有许多实际应用,特别是在函数式编程领域.