תחומים
    • הרשמה
    • התחברות
    • חיפוש
    • קטגוריות
    • פוסטים אחרונים
    • משתמשים
    • חיפוש
    חוקי הפורום

    מה זה הסינטקסט בJS שתוחמים חלק מהארגומנטים כאוביקט?

    תכנות
    3
    8
    546
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגב כנושא
    התחבר בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • א
      אהרן נערך לאחרונה על ידי dovid

      ככה:

      postparse(postparsed, { getTraits, postparse }) {
      

      כאן:
      https://github.com/open-xml-templating/docxtemplater/blob/eba9910d5d31597938555ee528a759c77879e530/es6/modules/expand-pair-trait.js#L72

      תגובה 1 תגובה אחרונה תגובה ציטוט 0
      • dovid
        dovid ניהול נערך לאחרונה על ידי dovid

        לא כ"כ הבנתי את השאלה. לא תוחמים כמה ארגומנטים, אלא זה ארגומנט בודד, שהוא אובייקט עם כמה מאפיינים.
        למשל פונקציית לוג, יכולה לקבל אובייקט:

        var person = { name: "dovid", site: "tchumim"};
        console.log(person );
        

        באותה מידה אפשר ליצור את האובייקט ישר בפונקציה:

         console.log({ name: "dovid", site: "tchumim"});
        

        אפשר ליצור קשר dovid@tchumim.com

        א תגובה 1 תגובה אחרונה תגובה ציטוט 1
        • א
          אהרן @dovid נערך לאחרונה על ידי

          @dovid
          חשבתי ע"כ, אבל לא הסתדר לי

          1. בלי קריאת שם לאוביקט, איך משתמשים/קוראים בארגומנטים האלו בפונקציה?
          2. בשורה הבאה הוא קורא ל"אחד ממאפייני האוביקט" הזה כמשתנה רגיל.
          תגובה 1 תגובה אחרונה תגובה ציטוט 0
          • dovid
            dovid ניהול נערך לאחרונה על ידי dovid

            אני לא הסתכלתי בקוד המקור, וממילא חשבתי ששאלתך (לפי הקוד שהיה בא)
            נסובה על "פרמטרים אקטואליים" - שעת הקריאה, כעת פתחתי את הלינק שנתת ומדובר ב"פרמטרים פורמליים" שזה ההצהרה על הפונקציה.
            זה באמת פיצר חדש של ES6 שנקרא Destructuring assignment

            אם למשל יש לך אובייקט כזה:

            var person = { name: "dovid", site: "tchumim"};
            

            ונניח יש לו עוד שלוש מאות מאפיינים לא רלוונטיים לך, ואתה רוצה כעת להוציא ממנו את המאפיין site שייוצא לקונטקסט הנוכחי (this.site).
            אז אתה יכול לכתוב ככה:

             ({site} = person);
             console.log(site);
            

            כעת אפשר לעשות אותו דבר בפונקציות, נניח יש לך כזו פונקציה:

            function getTitleAndAddress(win){
              console.log(win.document.title + ": " + win.location);
            }
            

            אז אפשר לחלץ מתוך הארגומנט את המאפיינים החשובים והם עוברים ישר לthis הנוכחי:

            function getTitleAndAddress({document, location}){
              console.log(document.title + ": " + location);
            }
            

            אפשר ליצור קשר dovid@tchumim.com

            מנצפך תגובה 1 תגובה אחרונה תגובה ציטוט 2
            • מנצפך
              מנצפך נערך לאחרונה על ידי

              @dovid אתה יכול להביא דוגמא למה זה טוב?

              dovid תגובה 1 תגובה אחרונה תגובה ציטוט 0
              • dovid
                dovid ניהול @מנצפך נערך לאחרונה על ידי

                @מנצפך אמר במה זה הסינטקסט בJS שתחומים חלק מהארגומנטים כאוביקט?:

                @dovid אתה יכול להביא דוגמא למה זה טוב?

                זה דבר ראשון עניין של נוחות.
                הרבה פעמים אתה מצפה לקבל אובייקט מורכב ואתה צריך רק משהו ממנו, אז אתה משתמש בשורה נוספת בה אתה מציב במשתנה שוב רק את החלק הרלוונטי.
                למשל בחזרה מפונקציה וכדומה:

                const { src, width} = document.images[0]
                

                כמו"כ בהזדמנות זו אתה לפעמים בוחר בשם קצר יותר ומתאים יותר מהשם המקורי.

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

                אפשר ליצור קשר dovid@tchumim.com

                תגובה 1 תגובה אחרונה תגובה ציטוט 1
                • מנצפך
                  מנצפך @dovid נערך לאחרונה על ידי

                  @dovid אמר במה זה הסינטקסט בJS שתחומים חלק מהארגומנטים כאוביקט?:

                  אם למשל יש לך אובייקט כזה:

                  var person = { name: "dovid", site: "tchumim"};
                  

                  ונניח יש לו עוד שלוש מאות מאפיינים לא רלוונטיים לך, ואתה רוצה כעת להוציא ממנו את המאפיין site שייוצא לקונטקסט הנוכחי (this.site).
                  אז אתה יכול לכתוב ככה:

                   ({site} = person);
                   console.log(site);
                  

                  במקרה הזה, מה site מחזיק?
                  את person.site?
                  ואם אני רוצה לקרוא לו בשם אחר מאשר site?

                  תגובה 1 תגובה אחרונה תגובה ציטוט 0
                  • dovid
                    dovid ניהול נערך לאחרונה על ידי

                    כן,
                    אתה יכול לעשות

                    {abc: site}

                    אפשר ליצור קשר dovid@tchumim.com

                    תגובה 1 תגובה אחרונה תגובה ציטוט 2
                    • 1 / 1
                    • פוסט ראשון
                      פוסט אחרון
                    בא תתחבר לדף היומי!