Funktionale Programmierung ist ein Programmierparadigma
1 Funktion ist der erste Bürger, sie kann einen Wert zurückgeben oder als Parameter anderer Funktionen verwendet werden
//console是一个函数 function con(v){ console.log(v) } // execute 也是一个函数 function execute(fn){ fn(1) } //将con函数作为参数传进execute函数 execute(con) // 1
2 Schreibmethode nah an der natürlichen Sprache
Xiaochi beendete das Essen und ging dann baden. Es kann ausgedrückt werden als eat().bathe()
// 吃饭函数 function eat(eat){ this.e = eat; return this; } // 洗澡函数 function bathe(bathe){ this.b = bathe; return this; } var person = eat("晓池在吃饭").bathe("晓池去洗澡了"); console.log(person.e) // 晓池在吃饭 console.log(person.b) // 晓池去洗澡了
3 Merkmale der funktionalen Programmierung
Anonyme Funktionen, also Funktionen ohne Namen, sind in der funktionalen Programmierung sehr verbreitet. Manchmal müssen wir sie (nicht wiederverwendete Funktionen) verwenden, um einige Funktionen zu vervollständigen:
// 自定义each函数 function each(arr,func){ var length = arr.length; for(var i = 0 ;i <length; i++){ func(i,arr[i]) } } // 执行each函数,传进一个匿名函数作为该函数的参数 each([1,2,3],function(i,v){ console.log('key:' + i + ',value:' +v); }); //输出内容 //key:0,value:1 //key:1,value:2 //key:2,value:3
Currying: Currying ist die Technik, eine Funktion, die mehrere Parameter akzeptiert, in eine Funktion umzuwandeln, die einen einzelnen Parameter (den ersten Parameter der ursprünglichen Funktion) akzeptiert und eine neue Funktion zurückgibt, die die verbleibenden Parameter akzeptiert und das Ergebnis zurückgibt.
//定义add函数,并返回一个函数 function add(num){ return function(x){ return num + x; } } add1 = add(1) console.log(add1(3)) // 4
Funktion höherer Ordnung: Wenn eine Funktion als Parameter vorhanden ist oder eine Funktion intern eine Funktion zurückgibt, kann die Funktion als Funktion höherer Ordnung bezeichnet werden.
Fazit
In tatsächlichen Anwendungen ist es nicht auf funktionale oder objektorientierte Sprachen beschränkt und ist normalerweise eine Mischung aus beiden. Tatsächlich verbessern sich viele gängige objektorientierte Sprachen ständig, indem sie beispielsweise einige Funktionen hinzufügen Warten Sie, in JavaScript sind die beiden nicht nur sehr einfach und schön, sondern auch einfacher zu debuggen.