מה ההבדל בין שיטה לפונקציה ב- JavaScript?


תשובה 1:

ההבדל בין שיטה לפונקציה: אין דבר כזה

פונקציה היא מערכת של קוד לביצוע משימה כלשהי ב- JavaScript.

שיטה היא גם פונקציה שמשמשת כמאפיין באובייקט.

דוגמה:

פונקציה: להלן הפונקציה להוסיף שני מספרים.

var func = פונקציה (א, ב) {

סכום var = a + b;

סכום החזר;

}

שיטה:

var obj = {name: “Amod”, empId: “A1122”, גיל: פונקציה (presentYear, DOB) {return presentYear - DOB}

}

השימוש בפונקציה כמאפיין בתוך אובייקט הוא שיטה. למעשה שניהם פונקציות.

מקווה שהבנת.

(העתק הודבק משאלה אחרת באותה כמות, כיוון שאני יודע את התשובה והיא הייתה נכונה)


תשובה 2:

בואו נכניס דובר אנגלית יליד לתערובת.

עובדות:

  1. כל השיטות הן פונקציות. לא כל הפונקציות הן שיטות. כל הפונקציות בג'אווה הן שיטות - מכיוון שג'אווה היא שפה מכוונת אובייקט טהורה. Java משתמשת במילה "שיטה" בצורה נכונה.

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

לדוגמה, ב- Node.js / JS:

פונקציה טהורה () {
 להחזיר 'זו פונקציה שאפשר לקרוא לה באופן ישיר';
}
var obj = {};
obj.method = פונקציה () {
return 'זו שיטה, עליך להפעיל אותה באמצעות obj.method ()';
};

תשובה 3:

זו שאלה ממש מסובכת במקרה של JavaScript. טכנית שיטה היא פונקציה שהיא גם תכונה של אובייקט.

אז: imObject.imMethod ()

בעוד שהפונקציה תהיה סתם: imFunction ()

אז איפה כל התחבולות? ובכן כשאתה מגדיר פונקציה כמו להלן:

פונקציה helloWorld () {
    console.log ('שלום, עולם!')
}

ואז הוא מחובר אוטומטית לאובייקט הגלובלי (נקרא חלון במקרה של דפדפנים). אז כשנתמודד עם codewindow.helloWorld () זה ידפיס את "שלום, עולם!" לקונסולה. AKA זו שיטה של ​​אובייקט החלון.

אותו הדבר יקרה כאשר נכריז על פונקציה כמו להלן:

var helloWorld = פונקציה () {console.log ('שלום, עולם!')} ORvar helloWorld = () => console.log ('שלום, עולם!')

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

כמו כן, כשתעשה:

let imReferenceToMethod = someObject.someMethod

אז תקבל פונקציה שאינה שיטה שנקראת imReferenceToMethod, למרות העובדה ש- someObject.someMethod ו- imReferenceToMethod שניהם פונקציה זהה.

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


תשובה 4:

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

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

  1. שיטה מועברת באופן מרומז על האובייקט עליו היא נקראה. שיטה מסוגלת לפעול על נתונים הכלולים בכיתה

מידע נוסף על נושא זה,

בקר ב- learningverncom / unit / function-constructor-function-method-js


תשובה 5:

זו אינה איכות הפונקציה אלא כיצד היא מופעלת.

שקול את הדוגמא הבאה.

פונקציה Foo () {}

Foo.prototype.bar = Foo_bar;

פונקציה Foo_bar () {
  תשואה 1;
}

תן foo = Foo חדש ();

במקרה זה Foo_bar היא פונקציה שעשויה לשמש כשיטה.

פו בר()

ו

Foo_bar.call (foo)

שקולים.


תשובה 6:

זו אינה איכות הפונקציה אלא כיצד היא מופעלת.

שקול את הדוגמא הבאה.

פונקציה Foo () {}

Foo.prototype.bar = Foo_bar;

פונקציה Foo_bar () {
  תשואה 1;
}

תן foo = Foo חדש ();

במקרה זה Foo_bar היא פונקציה שעשויה לשמש כשיטה.

פו בר()

ו

Foo_bar.call (foo)

שקולים.


תשובה 7:

זו אינה איכות הפונקציה אלא כיצד היא מופעלת.

שקול את הדוגמא הבאה.

פונקציה Foo () {}

Foo.prototype.bar = Foo_bar;

פונקציה Foo_bar () {
  תשואה 1;
}

תן foo = Foo חדש ();

במקרה זה Foo_bar היא פונקציה שעשויה לשמש כשיטה.

פו בר()

ו

Foo_bar.call (foo)

שקולים.