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的mysql框架
- 3. Node.js Rest框架
- 4. Node.js和Sproutcore上的相同框架/庫
- 5. 高端Node.js框架
- 6. Node.js:框架還是不框架?
- 7. 在框架上注入JavaScript
- 8. websocket + node.js +回退框架
- 9. 框架和內嵌框架有獨立的JavaScript上下文嗎?
- 10. 加載框架上的Javascript事件
- 11. Flask的Javascript框架
- 12. Flickr的JavaScript框架
- 13. Javascript OOP框架
- 14. JavaScript XSLT框架
- 15. Ember Javascript框架
- 16. 框架在JavaScript
- 17. Javascript MVC框架
- 18. Javascript MVC框架
- 19. Javascript框架
- 20. Node.js的神經框架unicode的響應
- 21. Node.js Express框架生成破損的app.js?
- 22. 哪個node.js CRUD網站的MVC框架
- 23. Node.JS + MongoDB彙總框架的平均值
- 24. node.js使用可可框架的插件
- 25. 框架將用於node.js後端的UI
- 26. 這些Node.js和javascript框架是什麼?他們做了什麼?
- 27. Express框架或node.js如何自動提供JavaScript文件?
- 28. Node.js上Geddy MVC的單元測試框架
- 29. Node.JS上的靜態Web部署(不使用任何框架)
- 30. 無法使用快遞框架上的node.js
http://blip.tv/jsconfeu/jed-schmidt-getting-functional-with-fab-4399811 – clyfe 2012-01-01 22:15:13