קאָמפּיוטערס, פּראָגראַממינג
דזשאַוואַסקריפּט: פֿונקציע פֿונקציע. פּראָגראַממינג שפּראַך דזשס
געדאנקען דינאַמיש צופרידן צו פֿאָרמירן וועב-RESOURCES האָבן ווערן דער קלאַל. סטאַטיק בלעטער און טעמפּלאַטעס וועב דיזיין ענדלעך געענדיקט זייער מיסיע.
אָבער, מאָדערן וועב-מיטל טוט ניט האָבן צו זיין רעפּריזענטיד דורך אַ סכום פון בלעטער דזשענערייטאַד דורך די סערווער און דערפרישן די בלעטערער (דזשס, + יידזשאַקס).
וועב-באזירט ריפּאַזאַטאָרי אין דער מאָמענט פון דעם אָנקומען פון דער גאַסט קענען זיין אַ פּאָר פון טיטלען פֿאַר די רעקאָרד, עטלעכע טעקסט אין דעם «קאָפּ», אַ ביסל שורות פון קאָד אין די «גוף» און אַלע. די מנוחה פון "פאַרשטיין" אין דעם פּראָצעס פון גאַסט - עס איז אַן אידעאל פּלאַץ, אָדער אַספּיירינג צו זיין איינער.
שטעלן די באַשרייַבונג און נאַטור פון פֿעיִקייטן
опыт, наработаный многими десятилетиями. דזשאַוואַסקריפּט - עס 'ס אַן איבערלעבונג נאַראַבאָטאַני דעקאַדעס. עס האט אַ באַטייַטיק געשיכטע פון אַנטוויקלונג, מאָדערן Qualified קאָלעקטיוו קריייטערז דעוועלאָפּערס. שפּראַך געזונט געדאַנק אויס, פאַרלאָזלעך, שיין און גיט אַ פאַקטיש געלעגנהייט פֿאַר דעוועלאָפּערס צו שרייַבן קאָד פֿאַר אַ לייַטיש און זיך-פֿאַרבעסערונג.
דער באַגריף פון אַ אַלגערידאַם איז אַ פֿונקציע דאָ טוט נישט עקסיסטירן אין פּרינציפּ. פון קורס, דער דעוועלאָפּער קענען ערגעץ אויף די בלאַט צו אַרייַנלייגן שריפט קאָד צו שטעלן אין עס און עס וועט זיין עקסאַקיוטאַד. страницы? אבער וואָס איז דער פונט אין דעם קאָד, וואָס איז עקסאַקיוטאַד נאָר אַמאָל: ווען לאָודינג (רעלאָאַדינג) די בלאט? איז עס מעגלעך צו שטעלן די ערשט וואַלועס פון וואָס עטלעכע נישטיק וועריאַבאַלז.
שריפט - דעם אָרט איז די רעכט באַשרייַבונג פון וועריאַבאַלז און פֿעיִקייטן, אלא ווי אַ גוט שטיק פון קאָד געשריבן פֿאַר זייַן אייגן צוליב. עס איז אַ סכום פון פֿעיִקייטן איז יקערדיק און וויכטיק, טאָמער - זייער קעגנצייַטיק דירעקט קשר, אָבער מער אָפֿט עס ס אַנדערש. אָרט באַשרייַבונג פון די פֿונקציע און דער אָרט פון זייַן אַפּלאַקיישאַן איז ניט די זעלבע זאַך.
עס איז ניט נייטיק אַז די פֿונקציע וועט רופן אן אנדער פֿונקציע גלייַך, אָבער עס קענען זיין געטאן מינאַצאַד דורך די פאָרמירונג פון דינאַמיש קאָד. א גאַסט נעמט אַ באַשלוס ין דעם קאָד און אַרבעט גאַנץ אַנדערש סיסטעם פֿעיִקייטן.
פונקטיאָנאַל דינאַמיק
פונקטיאָנאַל דינאַמיק - איז ניט בלויז און ניט אַזוי פיל האַנדלערס אַסיינד צו בלאַט עלעמענטן זענען פֿעיִקייטן אַז פאָרעם די יסודות פון די בלאַט, און פון די באַלדיק האַנדלערס, אויך, קענען טוישן.
דער קאַמף נעמט אָרט אויף דעם בלאַט, דיפּענדינג אויף די יסודות און גאַסט נאַטור אויף עס. באַוועגונג פון די מויז, קלאַוויאַטור, קנעפּלעך, קליקס, געשעענישן, זאכן און אנדערע צושטאנדן פירן צו די קאַטער פון די נייטיק פֿעיִקייטן.
אָריגינאַללי עס איז קיין קאָנסיסטענסי און עס איז קיין פּאַראַלעל. עס איז אַ טויגן ענטפער צו די וועב-מיטל געשעענישן. ווי שנעל דזשאַוואַסקריפּט מקיים אַ באַזונדער פֿונקציע עס דעפּענדס אויף פילע טעכניש (קאָמפּיוטער, קאָמוניקאַציע שורות) און סעמאַנטיק (לאָגיק אַלגערידאַם, ונטערטעניק געגנט, טייַטש די פּראָבלעם) סיבות.
אין פאַקט עס קענען זיין אַרגיוד אַז עפּעס האט געארבעט אין פּאַראַלעל, אָבער עפּעס וועט קער נאָך עפּעס, אָבער די טייַטש פון דעם ספּעציעל איז ניט. עס איז וויכטיק אַז די דזשאַוואַסקריפּט פֿונקציע - עס איז אַ געלעגנהייט צו שאַפֿן אַ טויגן ענטפער צו די אַקשאַנז פון דער גאַסט.
דעם נייַ טראכטן אין דער פּלאַן: צעשיקט פּראַסעסינג אין די דעפּטס פון אַ איין בלעטערער!
די סינטאַקס פֿאַר וועריאַבאַלז און פֿעיִקייטן
דזשאַוואַסקריפּט-וועריאַבאַלז זענען געשטעלט אין די קוויטל «שריפט», און אין דעם גוף פון די פֿונקציע. פֿעיִקייטן זענען Defined די זעלבע וועג. ספּעציעל טייַטש צו שרייַבן ין די פֿונקציע עס איז אן אנדער פֿונקציע, אָבער עס קען זיין נייטיק פֿאַר פאַרשידן סיבות, און עס איז גאַנץ גלייַך.
באַשרייַבונג פון די פֿונקציע בכלל הייבט מיט די קיווערד «פֿונקציע», נאכגעגאנגען דורך זייַן נאָמען, די רשימה פון טענות אין קלאַמערן, צעשיידט מיט קאָמעס, און די פֿונקציע גוף אין ברייסאַז.
אין דעם בייַשפּיל, צוויי פֿעיִקייטן זענען דיסקרייבד אַז צושטעלן יידזשאַקס-וועקסל צווישן די בלאַט און די סערווער. צומ טייל סקקסהר דיסקרייבד אויבן, ווייַל בנימצא אין ביידע יניטקסמל, און ין וואַיטרעפּליסק.
די פֿונקציע נאָמען און פּאַראַמעטער "פֿונקציע"
עס האט שוין דערלאנגט די ייסינגקראַנאַס ווערסיע ווען דזשאַוואַסקריפּט-פֿונקציע פֿונקציע איז גערופֿן נאָך די סערווירער ענטפער. אזוי, באקומען אַ ענטפער פון די סערווער, וואַיטרעפּליסק אַקסעססעס דעם בלאַט קוויטל, צו זאַט די אינפֿאָרמאַציע באקומען און ז אנדערע פֿעיִקייטן, וואָס זאל געזונט אָנהייבן די ווייַטער בעטן צו די סערווער.
דאָ עס איז אויך וויכטיק צו טאָן אַז וואַיטרעפּליסק - אַ פֿונקציע. scXHR.onreadystatechange = WaitReplySC она передается как параметр. אבער אין שורה סקקסהר.אָנרעאַדיסטאַטעטשאַנגע = וואַיטרעפּליסק עס איז דורכגעגאנגען ווי אַ פּאַראַמעטער. דעם גענעראַל הערשן אַריבערפירן פֿונקציע צו אנדערע פֿעיִקייטן ווי פּאַראַמעטערס. שפּיציק בראַקאַץ און געגעבן זיי זייַן פּאַראַמעטער (s) - די פֿונקציע וועט זיין עקסאַקיוטאַד מיד. נערייטיד דורך נאָמען בלויז, געזונט אַזוי וואָס. רופן פונקציאָנירן וועט מאַכן די איינער וואס גאַט איר נאָמען.
די פונקטיאָנאַליטי ימפּלאַמענאַד דורך יידזשאַקס, אַלאַוז איר צו רופן אַ דזשאַוואַסקריפּט פֿונקציע דורך די דאַטע באקומען פון די סערווער. אין פאַקט, שיקט אַ בקשה צו די סערווער, איינער אָדער די אנדערע שטריך זאל ניט אין אַלע "וויסן" וואָס פֿונקציע זי טורנס, און מיט וואָס אינפֿאָרמאַציע.
אויס פֿונקציע און זייַן רעזולטאַט
די גוף פון די פֿונקציע, איר קענען שרייַבן קיין שפּראַך אָפּערייטערז, וואס, אין פאַקט, פֿאַר עס איז בדעה. ין פֿעיִקייטן זענען וועריאַבאַלז דערקלערט ין און אַרויס, אָבער נישט די וואס זענען דיסקרייבד אין אנדערע פֿעיִקייטן.
אויב איר ווילן די פֿונקציע צו קריק אַ רעזולטאַט, איר קענען נוצן די דזשאַוואַסקריפּט צוריקקומען דערקלערונג: צוריקקומען. די גוף פון די פֿונקציע קען זיין אַ גענוג נומער פון צוריקקומען סטייטמאַנץ. עס איז ניט נייטיק אַז אַלע פון זיי וועט צוריקקומען דער רעזולטאַט פון דער זעלביקער טיפּ.
טיפּיקאַללי, דעוועלאָפּערס זענען ריווירד דעם געלעגנהייט און, דיפּענדינג אויף די סיטואַציע, באַשליסן צו צוריקציען פון די פֿונקציע ווי באַלד ווי מעגלעך.
עס איז ניט נייטיק צו לויפן דורך די גאנצע אַלגערידאַם פון פֿעיִקייטן, ווען איר קענען באַקומען אויס פריער.
פֿונקציע טענות
טענות זענען אריבערגעגאנגען צו די פֿונקציע רשימה, צעשיידט מיט קאָמעס, זענען ענקלאָוזד אין קלאַמערן, און זענען נאָר נאָך איר נאָמען. די טענות געניצט בייַטעוודיק נעמען, אָבער איר קענען פאָרן וואַלועס גלייַך. צו פאָרן אַ דזשאַוואַסקריפּט פֿונקציע אין אַ פֿונקציע, איר נאָר דאַרפֿן צו ספּעציפיצירן זייַן נאָמען אָן בראַקאַץ.
ין די פֿונקציע איז פאַראַנען בייַטעוודיק טענות, וואָס האט אַ לענג פאַרמאָג. איר קענען אָפּשיקן צו קיין אַרגומענט פֿונקציע דורך טענות [0], טענות [1], ... צו די לעצט טענות [אַרגומענצ.לענגטה-1].
טשאַנגינג די פֿונקציע פון דער אַרגומענט איז טאַקע ין די פֿונקציע אָבער נישט אַרויס עס. אין סדר צו טוישן עפּעס אַרויס די פֿונקציע, דער אָפּעראַטאָר מוזן נוצן דזשאַוואַסקריפּט צוריקקומען, דורך וואָס פאָרן די required ווערט צו די אַרויס.
נאָך די פֿונקציע פינישעס, אַלע וואָס איז געווען פֿאַרבונדן מיט זייַן ימפּלאַמענטיישאַן, וועט זיין חרובֿ. בעשאַס די דורכפירונג פון די פֿונקציע זאל טוישן די פונדרויסנדיק וועריאַבאַלז, חוץ יענע וואָס זענען דיסקרייבד אין אנדערע פֿעיִקייטן, כולל יענע אין די ינלענדיש.
מיר האָבן טענות קאַללעע פאַרמאָג, וואָס איז בדעה צו רופן אַ פֿונקציע אַז איז געטאן אין אַ געגעבן צייַט. אויב די גרונט זיך, די דזשאַוואַסקריפּט ווערסיע פון די פֿונקציע אין די פֿונקציע וועט ינסטרומענט רעקורסיאָן.
ניצן פֿעיִקייטן
די הויפּט דייַגע פון די פֿעיִקייטן - צו דינען דעם געשעעניש בלעטערער. צו טאָן דאָס כּמעט יעדער קוויטל האט די פיייקייַט צו ספּעציפיצירן אַ געשעעניש נאָמען און פונקציאָנירן פון זייַן פּראָדוקציע. איר קענען ספּעציפיצירן קייפל געשעענישן, אָבער יעדער געשעעניש איז אנגעוויזן בלויז איין פֿונקציע.
איין פֿונקציע קענען שעפּן קייפל בלאַט עלעמענטן און אַ ביסל געשעענישן. דורך «דעם» אָפּציע, איר קענען אַריבערפירן די אינפֿאָרמאַציע פֿונקציע ווו עס איז געווען געהייסן.
דער קלאַסיש נוצן פון דזשס-פֿעיִקייטן - די געשעעניש האַנדלערס אויף די יסודות. אין דעם בייַשפּיל סקפוועקאָמעגאָ () פֿונקציע אָדער סקפוועלקאָמעקאַנסעל () איז גערופֿן אין די ינפּוט / אָוטפּוט פאָרעם פון דער גאַסט, און ווען סאַלעקטינג די אַפּערייטינג מאָדע סקפמענויטעמקליקק (דעם).
אין די יענער פאַל, די פּאַראַמעטער אריבערגעגאנגען צו «דעם», וואָס אַלאַוז איר צו מעראַקיאַלאַסלי לערנען פון וואָס איז דיוואַ האט געהייסן. אַקטואַללי, דזשאַוואַסקריפּט איז אַזוי קוואַלאַטייטיוולי ימפּלאַנטיד אין די דאַם, און עס איז אַזוי קאַנוויניאַנטלי אַלאַוז איר צו נאַוויגירן זייַן עלעמענטן, צו זאַמלען די נייטיק אינפֿאָרמאַציע אַז די בלעטער דינאַמיק קענען נאָר זייַן אַנפּרידיקטאַבאַל.
די פֿונקציע טוט ניט האָבן צו קריק אַ שטריקל, נומער, אָדער אנדערע פֿונקציע. עס קענען צוריקקומען אַ פול די HTML עלעמענט, און וואָס איז די required נומער פון עלעמענטן, מיט זייער האַנדלערס, זייער געשעענישן.
דורך פּלייסינג אַן עלעמענט אויף דעם בלאַט, די דעוועלאָפּער קריייץ אַ נייַ פונקטיאָנאַליטי וואָס איז גוט אין טערמינען פון סאַלווינג די פּראָבלעם און טרעפן די אינטערעסן פון די וויזאַטערז, אָבער גאַנץ שווער אין טערמינען פון ימפּלאַמענטיישאַן.
זינט די אַנטוויקלונג פון אַזאַ אַ גאָר פונקטיאָנאַל, גרינג צו באַקומען פאַרפאַלן אין געבוירן קאָד, אין פֿונקציע קאַללס, אין מאָומאַנץ ווען געגרינדעט אָדער אַז די צופרידן פון איין אָדער אן אנדערן פון דעם בלאַט. איידער גענומען אַזאַ אַ ריכטונג פון אַנטוויקלונג, נישט שטערן אַ געזונט וועגן אַלץ.
אויף די פאַרשפּרייטונג פון טראכטן
די דעוועלאָפּער האט צו טראַכטן אין דער מדרגה פון אַלע יסודות פון די בלאַט, אין אַלע געשעענישן, און האָבן אַ קלאָר פּרעזענטירונג פון ווי אַלץ אַקטשאַוואַלי כאַפּאַנז. עס איז שווער, אָבער די אַרבעט איז ווערט עס.
אין דזשאַוואַסקריפּט, די פֿונקציע זאל זיין דילייד ביז עטלעכע געשעעניש, און אַזאַ פֿעיִקייטן זאל זיין פילע, און געשעענישן האָבן אַ טענדענץ צו פאַרשפּרייטן און באַקומען אין די "קויל פון וויזאַביליטי" פון די פאַרשידן פּראַסעסערז.
אין דעם בייַשפּיל, ערגעץ איידער די פֿונקציע האט געהייסן, וואָס ינישיייטיד אַ נומער טעקע נאַוויגאַציע מעניו. עס איז אנגענומען פּיידזשינג, וואָס איז אין די פֿענצטער נאָר זיבן טעקעס, וועלכע קענען ווערן אַוועקגענומען און פּראַסעסט. קענען זיין באווויגן ווי אַ טעקע דורך געבן אַ קליק אויף די רודערן, און די פייַל שליסלען און בלאַקס פון זיבן ראָוז.
אין יעדער פאַל האט זייַן אייגן פֿונקציע. אין אנדערע ווערטער, אין דעם פּשוט בייַשפּיל, איר דאַרפֿן צו שרייַבן אַ פּאָר פון דאַזאַנז פון פֿעיִקייטן וואס וועט רעאַגירן צו פאַרשידן געשעענישן, און עטלעכע פון די פֿעיִקייטן וועט שעפּן אַ פאַרשיידנקייַט פון אָפּציעס און סיטואַטיאָנס אַז די געשעענישן האט ניט געהערן.
לעמאָשל, ווען רימוווינג די דנאָ שורה מוזן זיין דיספּלייסט ופּוואַרדלי. דאס וועט דאַרפן אָדער מאַכן אַ נייַ סעלעקציע אַז וואָכעדיק און קלאר אַ מיטל, אָדער צו ציילן שורות, נוצן אַ דזשאַוואַסקריפּט פֿונקציע אויף די מענגע און צו דערגרייכן דעם ציל עלעגאַנט.
די טענות און רעזולטאטן פון פֿעיִקייטן
דזשאַוואַסקריפּט אַלאַוז איר צו ברענגען קאָד צו די "פול-ארויסגעשטעלטע" סטאַטוס. נאָרמאַללי, ווען דער אַרגומענט פון די פֿונקציע איז די פֿונקציע. ערלויבט אָפּציע, די פֿונקציע קערט אַ פֿונקציע. דזשאַוואַסקריפּט נעמט עס גאַנץ קאַמלי.
דאס איז אַ גוט מעקאַניזאַם, אָבער גאַנץ קאָמפּליצירט אין באַציונג צו ימפּלאַמענטיישאַן. טעקניקלי קאָשער סעמאַנטיקאַללי צושטעלן "פונקטיאָנאַל" לאָגיק טראַנסמיסיע בלויז דורך אַ Qualified דעוועלאָפּער.
ווען אַ דזשאַוואַסקריפּט פֿונקציע אין אַ פֿונקציע - אַלע רעכט, אָבער ווען די פֿונקציע דזשענערייץ אַ פֿונקציע, און אַז אן אנדער, די לאָגיק איז גאַנץ שווער צו נאָכפאָלגן. אין פאַקט, די קשיא איז נישט צי צו צולייגן די סקילז, די קשיא איז צו קריגן זיכער און ריכטיק רעזולטאַט.
דעוועלאָפּער זאָרגן איז קלאָר און פּשוט. עס איז אַ פּראָבלעם, איר דאַרפֿן אַ לייזונג, ניט אַ זשוק ווי «דזשאַוואַסקריפּט טעות די אָפּעראַציע איז ינסאַקיער» , אַ פּוסט פאַרשטעלן, אָדער האַלטן אַלע בלעטערער מאָטאָר.
אויב דער אַרגומענט איז אַ פֿונקציע, דעמאָלט די דעוועלאָפּער צו פאָרן אַ בייַטעוודיק מיט ספּעציעל פּראָפּערטיעס, אַז איז ניט אַ נומער, נישט אַ שטריקל, נישט אַ כייפעץ. אבער די נוצן פון אַזאַ אַן אַרגומענט קענען פירן צו די פאַקט אַז טוישן די פונדרויסנדיק וועריאַבאַלז און איז דער רעזולטאַט פון די פֿונקציע דורכפירונג. דעפּענדינג אויף די ענדערונגען וואָס וועט זיין טויגן טראַנספעררעד.
דורכפירונג פון דזשענערייטאַד קאָד
ינסטרומענט דורכפירונג קאָד דזשענערייטאַד אין די לויף פון אַרבעט אנדערע קאָד, עס איז מעגלעך דורך מיטל פון «עוואַל». עס איז נישט געהאלטן צו זייַן אַ ויסגעצייכנט לייזונג, אָבער אָפֿט קענען ניט קאָמפּליצירן דעם קאָד מיט ומנייטיק פֿעיִקייטן, און צו באַגרענעצן די פאָרמירונג פון נישטיק שורה פון דזשאַוואַסקריפּט קאָד און נאָר ויספירן עס.
אין דעם בייַשפּיל, די אַרייַנלייגן איז געגרינדעט שטאָך זיך אָפּעראַבלע div עטלעכע אינפֿאָרמאַציע. דיוואַ און אינפֿאָרמאַציע צופרידן פֿאַר פאַרשידענע נומער פון פאַרשידענע שטעלעס, ווייַל אַזאַ אַ באַשלוס אין דעם מעמד טוט נישט צושטעלן אַ געראַנטיד סיטואַציע «דזשאַוואַסקריפּט טעות די אָפּעראַציע איז ינסאַקיער» , אָבער פירמלי געבן די געבעטן ווירקונג.
נואַנס דזשאַוואַסקריפּט פּעראַדיים יבעררוק "פֿונקציע אין די פֿונקציע"
אויב איר קענען טאָן אָן די פריללס, עס איז בעסער צו נוצן עס. אַלע פון די אָפּציעס זענען גוט. פון קורס, אין פילע קאַסעס, עס איז די בלויז לייזונג.
א קלאַסיש בייַשפּיל פון רעקורסיאָן: די פאַקטאָריאַל. עס ס שווער גענוג צו שרייַבן אַ אַלגערידאַם אַז וועט שלייף, אָבער עס איז זייער פּשוט, איר קענען שטופּן די קאָנווערט וואַלועס. פאַקטאָריאַל איז גראָוינג צו שנעל.
אָבער, רעקורסיאָן, און פונקציאָנירן קאַללס אן אנדער פֿונקציע, וואָס קענען מאַכן ינפאָרמעד קאַללבאַקק - נאָרמאַל זאכן.
למשל, אַ רעגולער טיש. די אנדערע טיש זאל זיין אַ טיש. נעסטינג קענען ניט זיין ריסטריקטיד. שרייב פֿאַר יעדער טיש זייַן אייגן גאַנג פון פֿעיִקייטן - צו פיל לוקסוס.
אַזאַ יגזאַמפּאַלז זענען סך, און אַלע דעם וועט זיין אַ פאַקטיש און דרינגלעך פּראָבלעם, נישט ווייַל פון פּראָגראַממינג. אַז איז וואָס די פּראָבלעם ליגט אין די פאַקט אַז קיין-פריללס טאָן ניט שטעלן אַרויף אַ סיסטעם פון פֿעיִקייטן, מער דווקא, זייַן דיבאַגינג און סאַבסאַקוואַנט פאַרלאָזלעך אָפּעראַציע ווערט דזשאַוואַסקריפּט זאָרגן, און דעוועלאָפּער.
Similar articles
Trending Now