שאלה ב javascript

שאלה ב javascript

איך כותבים פונקציה שתקבל פרמטרים בצורה כזו? ולמה זה שימושי?
var result = Add(3)(4);
// result should be 7
 
תודה!

אבל למה צריך דבר מסובך כזה? מה רע בהעברת פרמטרים רגילה? האם יש איזה סנאריו מיוחד שבו צריך להשתמש בזה?
 

Royi Namir

New member
ב #C יהיה לך יותר נוח לראות את זה :

void Main(){
Func<int,int,int> g = (a,b)=>a+b;
g(3,4).Dump(); // 7 this is a simple function. //but we can do it also like : Func<int, Func<int, int>> f = a => b => a + b; //so now you can do : var myF = f(3); myF(4).Dump(); //7 myF(9).Dump();//12 }
 

MoAtlow

New member
דוגמא

למשל:
function db(connStr) var server = new someDbConnection(connStr);
return function(query){
return server.query(query); }}var mysql = db(connStr);mysql("select * from table");

אני זוכר שראיתי עוד כמה דוגמאות בקורס של Douglas crockford, וגם נתקלתי בזה לא פעם בעולם האמיתי

אם אחשוב על עוד דוגמא, ארשום פה
 

Royi Namir

New member
זה לא curry

curry זה כשיש לך N פרמטרים , ואתה יכול (לדוגמא)לחלק את זה ל N הרצות

בדוגמא שלך זה נטו דוגמא ל CLOSURE.
 
הרגת אותי עם הלינק הזה.

גם ארוך, גם מסובך, גם הוא רוצה ממני ללמוד שפה אחרת, ML כדי להבין דוגמה ב JS. בקיצור, נטשתי אותו באמצע.
&nbsp
בכל אופן נראה לי שהבנתי את הפרינציפ. תודה רבה לכולם!
 
למעלה