Quelle est la différence entre une méthode et une fonction en JavaScript?


Réponse 1:

Différence entre une méthode et une fonction: rien en tant que tel

La fonction est un ensemble de code pour effectuer une tâche en JavaScript.

La méthode est également une fonction utilisée comme propriété dans Object.

Ex:

Fonction: ci-dessous est la fonction pour ajouter deux nombres.

var func = fonction (a, b) {

var sum = a + b;

somme de retour;

}

Méthode:

var obj = {nom: "Amod", empId: "A1122", age: fonction (presentYear, DOB) {return presentYear - DOB}

}

L'utilisation d'une fonction comme propriété à l'intérieur d'un objet est une méthode. En fait, les deux sont des fonctions.

J'espère que vous avez compris.

(Copie collée d'une autre quora même question, car je connais la réponse et c'était correct)


Réponse 2:

Faisons entrer un anglophone natif dans le mix.

Les faits:

  1. Toutes les méthodes sont des fonctions, toutes les fonctions ne sont pas des méthodes, toutes les fonctions de Java sont des méthodes, car Java est un langage purement orienté objet. Java utilise correctement le mot «méthode».

Une méthode est un type spécial de fonction qui appartient à un objet. Une fonction qui n'est pas une méthode est une fonction qui peut être appelée directement, sans référence à l'objet conteneur; Les fonctions autonomes sont souvent utilisées comme fonctions anonymes, en particulier dans la programmation fonctionnelle. Nous pouvons le voir dans JS, mais cela n'existe pas vraiment en Java, car une fonction ne peut pas être déclarée en Java sans l'attacher à un objet, ce qui en fait une méthode.

Par exemple, dans Node.js / JS:

fonction pure () {
 return 'Ceci est une fonction qui peut être appelée directement';
}
var obj = {};
obj.method = function () {
return 'Ceci est une méthode, vous devez l'invoquer avec obj.method ()';
};

Réponse 3:

C'est une question vraiment délicate en cas de JavaScript. Techniquement, la méthode est une fonction qui est également une propriété d'objet.

Donc: imObject.imMethod ()

Alors que la fonction serait juste: imFunction ()

Alors, où est toute la ruse? Eh bien, lorsque vous définissez une fonction comme ci-dessous:

fonction helloWorld () {
    console.log ('Bonjour, monde!')
}

Ensuite, il est également automatiquement attaché à l'objet global (appelé fenêtre dans le cas des navigateurs). Ainsi, lorsque nous exécuterons ci-dessous codewindow.helloWorld (), il affichera «Bonjour, monde!» Sur la console. AKA c'est une méthode de l'objet fenêtre.

La même chose se produira lorsque nous déclarerons une fonction comme ci-dessous:

var helloWorld = function () {console.log (‘Bonjour, monde!’)} ORvar helloWorld = () => console.log (‘Bonjour, monde!’)

Mais bon ce n'est pas tout. Il ne deviendra pas une propriété de l'objet global, lorsque nous le déclarerons en utilisant const, ou laisser des mots clés au lieu de var.

De plus, lorsque vous ferez:

laissez imReferenceToMethod = someObject.someMethod

Ensuite, vous obtiendrez une fonction qui n'est pas une méthode appelée imReferenceToMethod, malgré le fait que someObject.someMethod et imReferenceToMethod soient tous deux la même fonction.

Dans la pratique, la terminologie fonctionne comme ceci: Soit les mots de méthode et de fonction sont utilisés de manière interchangeable - soit - Le mot de méthode est utilisé pour décrire les fonctions qui sont des propriétés d'un objet qui n'est pas global.


Réponse 4:

Une fonction est un morceau de code appelé par son nom. Il peut transmettre des données pour fonctionner et peut éventuellement renvoyer des données. Toutes les données transmises à une fonction sont transmises explicitement.

Une méthode est un morceau de code appelé par un nom associé à un objet. À bien des égards, elle est identique à une fonction, à l'exception de deux différences clés:

  1. Une méthode reçoit implicitement l'objet sur lequel elle a été appelée. Une méthode est capable d'opérer sur les données contenues dans la classe

Plus d'informations sur ce sujet,

visite à learnverncom / unit / function-constructor-function-method-js


Réponse 5:

Ce n'est pas une qualité de la fonction mais la façon dont elle est invoquée.

Prenons l'exemple suivant.

fonction Foo () {}

Foo.prototype.bar = Foo_bar;

fonction Foo_bar () {
  retour 1;
}

let foo = new Foo ();

Dans ce cas, Foo_bar est une fonction qui peut être utilisée comme méthode.

foo.bar ()

et

Foo_bar.call (foo)

sont équivalents.


Réponse 6:

Ce n'est pas une qualité de la fonction mais la façon dont elle est invoquée.

Prenons l'exemple suivant.

fonction Foo () {}

Foo.prototype.bar = Foo_bar;

fonction Foo_bar () {
  retour 1;
}

let foo = new Foo ();

Dans ce cas, Foo_bar est une fonction qui peut être utilisée comme méthode.

foo.bar ()

et

Foo_bar.call (foo)

sont équivalents.


Réponse 7:

Ce n'est pas une qualité de la fonction mais la façon dont elle est invoquée.

Prenons l'exemple suivant.

fonction Foo () {}

Foo.prototype.bar = Foo_bar;

fonction Foo_bar () {
  retour 1;
}

let foo = new Foo ();

Dans ce cas, Foo_bar est une fonction qui peut être utilisée comme méthode.

foo.bar ()

et

Foo_bar.call (foo)

sont équivalents.