Ich habe eine Folie gesehen, die Fab, ein node.js-Framework dargestellt.Javascript FAB-Framework auf Node.js
Ist das JavaScript?
Könnte jemand erklären, was in diesem Code vor sich geht?
Ich bin alles verloren.
Ich habe eine Folie gesehen, die Fab, ein node.js-Framework dargestellt.Javascript FAB-Framework auf Node.js
Ist das JavaScript?
Könnte jemand erklären, was in diesem Code vor sich geht?
Ich bin alles verloren.
Ist JavaScript, es ist eine Funktion Verkettung Muster. Die erste Zeile (fab = require("fab"))
enthält die fab
-Funktion und gibt einen Verweis darauf zurück.
Alle nachfolgenden Klammern sind Funktionsaufrufe, jeder Funktionsaufruf gibt wahrscheinlich die gleiche Funktion immer wieder zurück.
Das Muster sieht wahrscheinlich wie dieses vereinfachtes Beispiel:
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!");
Ausgänge:
function: Foo A RegExp: /bar/ A string: baz!
ich denke, dass wir unsere Antworten kombinieren sollte ... – Harmen
@ Harmen..do diesem. Willst du nicht nur eines von dir geben das Cred =) –
so schwer ist in der Tat zu folgen; es sieht überhaupt nicht nach Javascript aus ...
Wie auch immer, FAB nutzt den Vorteil, einen Zeiger auf die aufgerufene Funktion zurückzugeben. Zum Beispiel:.
function doSomething(str){
alert(str);
return arguments.callee;
}
// Alerts 'hi' and then 'there'
doSomething('hi')('there');
Natürlich können Sie zusätzliche Bedingungen umsetzen können, wie die Anzahl der Argumente zu zählen oder die Art der Argumente übergeben Kontrolle in Zum Beispiel:
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);
Die letzte Beispiel Warnungen:
> Hi, 3 + 4 is:
> 7
http://blip.tv/jsconfeu/jed-schmidt-getting-functional-with-fab-4399811 – clyfe