La programmation fonctionnelle est un paradigme de programmation
1 Fonction est le premier citoyen, elle peut renvoyer une valeur ou être utilisée comme paramètre d'autres fonctions
//console是一个函数 function con(v){ console.log(v) } // execute 也是一个函数 function execute(fn){ fn(1) } //将con函数作为参数传进execute函数 execute(con) // 1
2 Méthode d'écriture proche du langage naturel
Xiaochi a fini de manger puis est allé prendre un bain. Cela peut être exprimé par 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 fonctionnalités de la programmation fonctionnelle
Les fonctions anonymes, c'est-à-dire les fonctions sans noms, sont très courantes en programmation fonctionnelle. Parfois, nous devons les utiliser (fonctions non utilisées) pour compléter certaines fonctions. Apprenons-les en définissant chaque fonction :
// 自定义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 est la technique de transformation d'une fonction qui accepte plusieurs paramètres en une fonction qui accepte un seul paramètre (le premier paramètre de la fonction d'origine), et renvoie une nouvelle fonction qui accepte les paramètres restants et renvoie le résultat.
//定义add函数,并返回一个函数 function add(num){ return function(x){ return num + x; } } add1 = add(1) console.log(add1(3)) // 4
Fonction d'ordre supérieur : s'il existe une fonction en tant que paramètre ou si une fonction renvoie une fonction en interne, la fonction peut être appelée une fonction d'ordre supérieur. Chaque fonction ci-dessus est considérée comme un type de fonction d'ordre supérieur.
Conclusion
Dans les applications réelles, il ne se limite pas aux fonctionnalités ou à l'orientation objet, et est généralement un mélange des deux. En fait, de nombreux langages orientés objet traditionnels s'améliorent constamment, par exemple en ajoutant certaines fonctionnalités. de langages de programmation fonctionnels. Attendez, en JavaScript, les deux sont bien combinés. Le code peut non seulement être très simple et beau, mais aussi plus facile à déboguer.