19
A
回答
22
是普通的JavaScript,它是一個函數鏈接模式。第一行(fab = require("fab"))
包含fab
函數並返回對它的引用。
所有後面的括號都是函數調用,每個函數調用一次又一次返回相同的函數。
模式可能看起來像這樣簡單的例子:
var foo = function (arg) {
// detect what the argument is
if (typeof arg == 'function') {
// do something with arg
console.log('function: '+arg());
} else if (arg instanceof RegExp) {
// arg is a RegExp...
console.log('A RegExp: '+arg);
} else if (typeof arg == "string") {
// arg is a string
console.log('A string: '+arg);
}
return foo; // return a reference to itself
};
(foo)
(function() { return "Foo "; })
(/bar/)
(" baz!");
輸出:
function: Foo A RegExp: /bar/ A string: baz!
+0
我認爲我們應該結合我們的答案... – Harmen 2010-09-26 18:54:42
+0
@ Harmen ..那。不想只給你一個信譽=) – 2010-09-26 19:33:01
9
這很難確實遵循;它看起來並不像Javascript ......
無論如何,FAB利用返回指向被調用函數的指針。例如:
function doSomething(str){
alert(str);
return arguments.callee;
}
// Alerts 'hi' and then 'there'
doSomething('hi')('there');
當然你也可以實現額外的條件,像計算參數的數目或檢查中傳遞的參數類型例如:
function doSomething(){
if(arguments.length == 1){
alert(arguments[0])
}
else if(arguments.length == 2){
alert(arguments[0] + arguments[1]);
}
return arguments.callee;
}
doSomething
("Hi, 3 + 4 is:")
(3, 4);
最後一個例子提醒:
> Hi, 3 + 4 is:
> 7
相關問題
- 1. node.js的API框架
- 2. Node.js Rest框架
- 3. Node.js和Sproutcore上的相同框架/庫
- 4. Node.js:框架還是不框架?
- 5. websocket + node.js +回退框架
- 6. 框架和內嵌框架有獨立的JavaScript上下文嗎?
- 7. Flask的Javascript框架
- 8. Node.js的神經框架unicode的響應
- 9. Javascript MVC框架
- 10. Javascript MVC框架
- 11. Javascript框架
- 12. Javascript OOP框架
- 13. Ember Javascript框架
- 14. 框架在JavaScript
- 15. Node.js Express框架生成破損的app.js?
- 16. Node.js上Geddy MVC的單元測試框架
- 17. 無法使用快遞框架上的node.js
- 18. Node.JS上的靜態Web部署(不使用任何框架)
- 19. 用Javascript框架框架動畫
- 20. 如何在Opa上使用JavaScript框架
- 21. 如何使用node.js創建框架(框架,窗口)?
- 22. Javascript的目的MVC框架
- 23. FAB Button在ActionBar上使用
- 24. JavaScript MVC框架+ raphaelJS
- 25. 100%Javascript Web框架
- 26. Javascript框架發現
- 27. UI框架(Javascript,CSS)?
- 28. Javascript動畫框架
- 29. Javascript框架結構
- 30. 動畫JavaScript框架
http://blip.tv/jsconfeu/jed-schmidt-getting-functional-with-fab-4399811 – clyfe 2012-01-01 22:15:13