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

est-ce que quelqu'un peut fournir une explication simple de méthodes vs. fonctions dans le contexte OOP?

1472
demandé sur Duc Filan 2008-10-01 03:45:10
la source

30 ответов

Un fonction est un morceau de code qui est appelé par son nom. Il peut être transmis des données pour fonctionner sur (i.e. les paramètres) et peut éventuellement retourner des données (la valeur de retour). Toutes les données transmises à une fonction sont explicitement passées.

Un méthode est un morceau de code qui est appelé par un nom qui est associé à un objet. Dans la plupart des cas, elle est identique à une fonction, à l'exception de deux différences essentielles:

  1. une méthode est implicitement passée l'objet sur lequel elle a été appelée.
  2. Une méthode est capable de fonctionner sur des données contenues au sein de la classe (en se souvenant qu'un objet est une instance d'une classe - la classe est la définition, l'objet est une instance de données).

(ceci est une explication simplifiée, ignorant les questions de portée etc.)

1539
répondu Andrew Edgecombe 2016-12-19 13:27:06
la source

une méthode est sur un objet.

Une fonction est indépendante de l'objet.

pour Java, il n'y a que des méthodes.

Pour C, il n'y a que des fonctions.

pour C++ Cela dépend si vous êtes dans une classe ou non.

880
répondu Aaron 2013-02-28 19:54:30
la source

"la méthode" est orientée objet, mot pour "fonction" . C'est à peu près tout là est à lui (c'est à dire., pas vraiment de différence).

malheureusement, je pense que beaucoup de réponses ici perpétuent ou font avancer l'idée qu'il y a une différence complexe et significative.

vraiment - il n'y a pas tant que cela, juste des mots différents pour la même chose.

[fin de l' ajout]


en fait, comme Brian Neal a souligné dans un commentaire à cette question , la norme C++ n'utilise jamais le terme "méthode" lorsqu'elle se réfère aux fonctions des membres. Certaines personnes peuvent prendre cela comme une indication que C++ n'est pas vraiment un langage orienté objet; cependant, je préfère le prendre comme une indication qu'un groupe assez intelligent de personnes ne pensait pas qu'il y avait une raison particulièrement forte pour un autre terme.

171
répondu Michael Burr 2017-05-23 15:02:48
la source

en général: les méthodes sont des fonctions qui appartiennent à une classe, les fonctions peuvent être sur n'importe quelle autre portée du code donc vous pouvez déclarer que toutes les méthodes sont des fonctions, mais pas toutes les fonctions sont des méthodes:

prendre l'exemple de python suivant:

class Door:
  def open(self):
    print 'hello stranger'

def knock_door:
  a_door = Door()
  Door.open(a_door)

knock_door()

L'exemple donné montre une classe appelée "Porte" qui a une méthode ou d'une action appelée "open", c'est une méthode parce qu'elle a été déclarée à l'intérieur d'une classe. Il y a une autre partie du code avec " def " juste au-dessous qui définit une fonction, c'est une fonction parce qu'elle n'est pas déclarée à l'intérieur d'une classe, cette fonction appelle la méthode que nous avons définie à l'intérieur de notre classe comme vous pouvez le voir et finalement la fonction est appelée par elle-même.

comme vous pouvez le voir vous pouvez appeler une fonction n'importe où mais si vous voulez appeler une méthode soit vous devez passer un nouvel objet du même type que la classe la méthode est déclarée (Classe.méthode (objet)) ou vous devez invoquer la méthode à l'intérieur de la objet (objet.Méthode()), au moins en python.

pensez aux méthodes comme choses qu'une seule entité peut faire, donc si vous avez une classe de chien, il serait logique d'avoir une fonction d'écorce seulement à l'intérieur de cette classe et ce serait une méthode, si vous avez aussi une classe de personne, il pourrait être logique d'écrire une fonction "alimentation" pour qui n'appartient à aucune classe puisque les humains et les chiens peuvent être nourris et vous pourriez appeler cela une fonction car il n'appartient à aucune classe en particulier.

82
répondu Gustavo Rubio 2014-11-17 04:41:29
la source

une définition très générale de la principale différence entre une fonction et une méthode :

les fonctions sont définies en dehors des classes, tandis que les méthodes sont définies à l'intérieur des classes et font partie de celles-ci.

35
répondu Jorgesys 2016-09-01 09:54:36
la source

si vous avez envie de lire voici "mon introduction aux méthodes OO "

l'idée derrière Le paradigme Orienté Objet est de "menace", le logiciel est composé de .. bien des "objets". Les objets dans le monde réel ont des propriétés, par exemple si vous avez un employé, l'employé a un nom, une identité d'employé, un poste, il appartient à un département, etc. etc.

l'objet sait aussi comment traiter ses attributs et effectuer certaines opérations sur eux. Laisser si on veut savoir ce qu'un employé fait en ce moment, on lui demande.

employe whatAreYouDoing.

que" ce que vous faites "est un" message " envoyé à l'objet. L'objet sait répondre à ces questions, on dit qu'il a une "méthode" pour résoudre la question.

ainsi, la façon dont les objets doivent exposer leur comportement est appelée méthodes. Les méthodes sont donc l'objet artefact doit "faire" quelque chose.

D'autres méthodes possibles sont

employee whatIsYourName
employee whatIsYourDepartmentsName

etc.

les fonctions dans l'autre main sont des façons dont un langage de programmation doit calculer certaines données, par exemple, vous pourriez avoir la fonction addValues (8, 8 ) qui renvoie 16

// pseudo-code
function addValues( int x, int y )  return x + y 
// call it 
result = addValues( 8,8 )
print result // output is 16...

depuis les premiers langages de programmation populaires ( comme fortran, c, pascal ) n'ont pas couvert le paradigme OO, ils appellent seulement à ces artéfacts "fonctions".

par exemple la fonction précédente en C serait:

int addValues( int x, int y ) 
{
   return x + y;
}

il n'est pas" naturel "de dire qu'un objet a une" fonction " pour effectuer une certaine action, parce que les fonctions sont plus liées à des choses mathématiques alors qu'un employé a peu de mathématique sur elle, mais vous pouvez avoir des méthodes qui font exactement la même chose que les fonctions, par exemple en Java ce serait la fonction addValues équivalente.

public static int addValues( int x, int y ) {
    return x + y;
}

, ça vous dit quelque chose? C'est parce que Java a ses racines sur C++ et C++ Sur C.

à la fin est juste un concept, dans la mise en œuvre, ils peuvent ressembler à la même chose, mais dans la documentation OO ceux-ci sont appelés méthode.

est un exemple de L'ancien objet employé en Java.

public class Employee {

    Department department;
    String name;

    public String whatsYourName(){
        return this.name;
    }
    public String whatsYourDeparmentsName(){
         return this.department.name();
    }
    public String whatAreYouDoing(){
        return "nothing";
    } 
    // Ignore the following, only set here for completness
    public Employee( String name ) {
        this.name = name;
    }

}

// Usage sample.
Employee employee = new Employee( "John" ); // Creates an employee called John

// If I want to display what is this employee doing I could use its methods.
// to know it.
String name = employee.whatIsYourName():
String doingWhat = employee.whatAreYouDoint();

// Print the info to the console.

 System.out.printf("Employee %s is doing: %s", name, doingWhat );

Output:
Employee John is doing nothing.

La différence alors, est sur le "domaine" où il est appliqué.

AppleScript ont l'idée de "langue naturelle" matphor qui , à un moment OO avait. Par exemple Smalltalk. J'espère qu'il peut être raisonnable plus facile pour vous de comprendre les méthodes dans les objets après avoir lu ceci.

NOTE: le code ne doit pas être compilé, juste pour servir d'exemple. N'hésitez pas à modifier le post et à ajouter L'exemple Python.

26
répondu OscarRyz 2008-10-01 04:35:47
la source

manière Simple de se souvenir:

  • F onction → F ree (Libre ne signifie pas appartenir à un objet ou une classe)
  • M méthode → M braise (Un membre d'un objet ou d'une classe)
23
répondu Duc Filan 2017-10-08 03:07:41
la source

dans OO world, les deux sont communément utilisés pour signifier la même chose.

d'un point de vue purement mathématique et CS, une fonction retournera toujours le même résultat lorsqu'elle est appelée avec les mêmes arguments ( f(x,y) = (x + y) ). Une méthode par contre, est typiquement associée à une instance d'une classe. Encore une fois, cependant, la plupart des langues OO modernes n'utilisent plus le terme "fonction" pour la plupart. Beaucoup de méthodes statiques peuvent être tout à fait comme des fonctions, car ils ont généralement aucune état (pas toujours vrai).

16
répondu TheSoftwareJedi 2008-10-01 03:56:16
la source

disons qu'une fonction est un bloc de code (généralement avec sa propre portée, et parfois avec sa propre fermeture) qui peut recevoir quelques arguments et peut aussi retourner un résultat.

une méthode est une fonction qui appartient à un objet (dans certains systèmes orientés objet, il est plus correct de dire qu'elle appartient à une classe). D'être "possédé" par un objet/classe signifie que vous référer à la méthode de l'objet/classe; par exemple, en Java, si vous voulez appeler une méthode "open()" propriété d'un objet "porte" vous devez écrire "porte.ouvrir.")(

habituellement, les méthodes obtiennent aussi quelques attributs supplémentaires décrivant leur comportement au sein de l'objet/classe, par exemple: visibilité (liée au concept d'encapsulation orienté objet) qui définit à partir de quels objets (ou classes) la méthode peut être invoquée.

dans de nombreux langages orientés objet, toutes les "fonctions" appartiennent à un objet (ou une classe) et donc dans ces langages il n'y a pas les fonctions qui ne sont pas des méthodes.

14
répondu Mike Tunnicliffe 2008-10-01 04:05:53
la source

Une fonction est un concept mathématique. Par exemple:

f(x,y) = sin(x) + cos(y)

dit que la fonction f() retournera le sin du premier paramètre ajouté au cosinus du second paramètre. C'est juste des maths. Comme il arrive sin() et cos() sont aussi des fonctions. Une fonction a une autre propriété: tous les appels à une fonction avec les mêmes paramètres, doit renvoyer le même résultat.

, Une méthode, d'autre part, est une fonction qui est lié à une objet dans un langage orienté-objet. Il a un paramètre implicite: l'objet sur lequel on agit (et son état).

ainsi, si vous avez un objet Z avec une méthode g (x), vous pourriez voir ce qui suit:

Z.g(x) = sin(x) + cos(Z.y)

dans ce cas, le paramètre x est passé, comme dans l'exemple de fonction précédent. Cependant, le paramètre to cos () est une valeur qui vit à L'intérieur de L'objet Z. Z et les données qui y vit (Z. y) sont des paramètres implicites pour La méthode g de Z ().

11
répondu Bradley Mazurek 2008-10-01 04:54:03
la source

fonction ou une méthode est un morceau de code appelé callable qui effectue certaines opérations et retourne optionnellement une valeur.

Dans C la langue, le terme de fonction est utilisé. Java & C# les gens diraient que c'est une méthode (et une fonction dans ce cas est définie dans une classe/objet).

A c++ programmeur pourrait l'appeler une fonction ou parfois méthode (selon qu'ils écrivent du code de style C++ ou qu'ils font du C++ orienté objet, un programmeur C/C++ seulement l'appellerait probablement une fonction parce que le terme "méthode" est moins souvent utilisé dans la littérature c/C++).

vous utilisez une fonction en appelant simplement son nom comme,

result = mySum(num1, num2);



Vous appelleriez une méthode en référençant d'abord son objet comme,

result = MyCalc.mySum(num1,num2);
11
répondu Abdullah Leghari 2015-03-27 02:10:18
la source
Les méthodes

sont des fonctions de classes. Dans le jargon normal, les gens échangent méthode et fonction partout. Fondamentalement, vous pouvez penser à eux comme la même chose (pas sûr si les fonctions globales sont appelées méthodes).

http://en.wikipedia.org/wiki/Method_ (computer_science)

10
répondu Statement 2008-10-01 03:52:13
la source

Historiquement, il peut y avoir une différence subtile avec une "méthode" étant quelque chose qui ne retourne pas de valeur, et une "fonction" qui ne.Chaque langue a son propre lexique des termes avec un sens particulier.

dans " C " , le mot " fonction signifie une routine de programme .

Dans Java , le terme "fonction" n'a pas de signification particulière. Tandis que " méthode " signifie l'une des routines qui forme la mise en œuvre d'une classe.

Dans C# que l'on peut traduire par:

public void DoSomething() {} // method
public int DoSomethingAndReturnMeANumber(){} // function

mais vraiment, je répète qu'il n'y a vraiment aucune différence dans les 2 concepts. Si vous utilisez le terme "fonction" dans les discussions informelles sur Java, les gens vont supposer que vous vouliez dire "méthode" et continuer. Ne l'utilisez pas dans des documents ou des présentations sur Java, ou vous aurez l'air stupide.

10
répondu Jaimin Patel 2016-02-04 13:33:11
la source

Méthodes d'une classe de loi sur l'instance de la classe, appelé l'objet.

class Example
{
   public int data = 0; // Each instance of Example holds its internal data. This is a "field", or "member variable".

   public void UpdateData() // .. and manipulates it (This is a method by the way)
   {
      data = data + 1;
   }

   public void PrintData() // This is also a method
   {
      Console.WriteLine(data);
   }
}

class Program
{
   public static void Main()
   {
       Example exampleObject1 = new Example();
       Example exampleObject2 = new Example();

       exampleObject1.UpdateData();
       exampleObject1.UpdateData();

       exampleObject2.UpdateData();

       exampleObject1.PrintData(); // Prints "2"
       exampleObject2.PrintData(); // Prints "1"
   }
}
7
répondu Statement 2008-10-01 03:57:38
la source

dans les langages OO comme objet Pascal ou C++, une" méthode " est une fonction associée à un objet. Ainsi, par exemple, un "Chien" objet peut avoir une "écorce" et cela serait considéré comme une "Méthode". En revanche, la fonction" StrLen " est seule (elle fournit la longueur d'une chaîne fournie comme argument). Il est donc juste "151920920 fonction" a"."Javascript est techniquement orienté objet aussi bien, mais fait face à de nombreuses limites par rapport à un langage complet comme C++, C# ou Pascal. Néanmoins, cette distinction doit être maintenue.

quelques faits supplémentaires: C# est entièrement orienté objet de sorte que vous ne pouvez pas créer des fonctions autonomes"."En C# chaque fonction est liée à un objet et est donc, techniquement, une "méthode."L'astuce est que peu de gens en C# les appellent "méthodes" - ils utilisent juste le terme" fonctions " parce qu'il n'y a pas de véritable distinction à faire.

enfin - si N'importe quel Pascal les gourous ne me sautent pas dessus ici - Pascal fait également la différence entre les" fonctions "(qui renvoient une valeur) et les" procédures " qui ne le font pas. C# ne fait pas cette distinction explicitement, bien que vous puissiez, bien sûr, choisir de retourner une valeur ou non.

7
répondu Mark Brittingham 2008-10-01 03:59:25
la source

puisque vous avez mentionné Python, ce qui suit pourrait être une illustration utile de la relation entre les méthodes et les objets dans la plupart des langages modernes orientés objet. En un mot ce qu'ils appellent une "méthode" est juste une fonction qui reçoit un argument supplémentaire (comme d'autres réponses ont souligné), mais Python rend que plus explicite que la plupart des langues.

# perfectly normal function
def hello(greetee):
  print "Hello", greetee

# generalise a bit (still a function though)
def greet(greeting, greetee):
  print greeting, greetee

# hide the greeting behind a layer of abstraction (still a function!)
def greet_with_greeter(greeter, greetee):
  print greeter.greeting, greetee

# very simple class we can pass to greet_with_greeter
class Greeter(object):
  def __init__(self, greeting):
    self.greeting = greeting

  # while we're at it, here's a method that uses self.greeting...
  def greet(self, greetee):
    print self.greeting, greetee

# save an object of class Greeter for later
hello_greeter = Greeter("Hello")

# now all of the following print the same message
hello("World")
greet("Hello", "World")
greet_with_greeter(hello_greeter, "World")
hello_greeter.greet("World")

Comparez maintenant la fonction greet_with_greeter et la méthode greet : le seul la différence est le nom du premier paramètre (dans la fonction que j'ai appelé "greeter", dans la méthode que j'ai appelé "auto"). Je peux donc utiliser la méthode greet exactement de la même manière que j'utilise la fonction greet_with_greeter (en utilisant la syntaxe "dot" pour y arriver, puisque je l'ai défini à l'intérieur d'une classe):

Greeter.greet(hello_greeter, "World")

donc j'ai effectivement transformé une méthode en fonction. Puis-je transformer une fonction en méthode? Eh bien, comme Python vous permet de jouer avec les classes une fois qu'elles sont définies, essayons:

Greeter.greet2 = greet_with_greeter
hello_greeter.greet2("World")

Oui, la fonction greet_with_greeter est maintenant aussi connu comme la méthode greet2 . Ceci montre la seule différence réelle entre une méthode et une fonction: lorsque vous appelez une méthode "on" un objet en appelant object.method(args) , le langage le transforme magiquement en method(object, args) .

(OO les puristes diront qu'une méthode est quelque chose de différent à partir d'une fonction, et si vous avez avancé Python ou Ruby - ou Smalltalk! - vous commencer à voir leur point. En outre, certaines langues donnent aux méthodes un accès spécial aux bits d'un objet. Mais la principale différence conceptuelle est encore caché paramètre supplémentaire.)

7
répondu Sam Stokes 2008-10-01 05:20:03
la source

fonction est un ensemble de logique qui peut être utilisé pour manipuler des données.

Tandis que, la Méthode est la fonction qui est utilisée pour manipuler les données de l'objet auquel il appartient. Donc techniquement, si vous avez une fonction qui n'est pas complètement liée à votre classe mais qui a été déclarée dans la classe, ce n'est pas une méthode; on appelle ça un mauvais design.

7
répondu 2008-12-03 12:47:08
la source

fonction est un ensemble de logique qui peut être utilisé pour manipuler des données. Alors, la Méthode est la fonction qui est utilisée pour manipuler les données de l'objet auquel il appartient. Donc techniquement, si vous avez une fonction qui n'est pas complètement liée à votre classe mais qui a été déclarée dans la classe, ce n'est pas une méthode; on appelle ça un mauvais design.

7
répondu Debaprasad 2014-09-15 21:38:48
la source

pour moi: la fonction d'une méthode et d'une fonction est la même si je suis d'accord que:

  • une fonction peut retourner une valeur
  • peut s'attendre à des paramètres

tout comme n'importe quel morceau de code, vous pouvez avoir des objets que vous mettez dans et vous pouvez avoir un objet qui vient comme un résultat. En faisant cela, ils pourraient changer l'état d'un objet, mais cela ne changerait pas leur fonctionnement de base pour moi.

il pourrait y avoir une définition différente dans les fonctions d'appel d'objets ou d'autres codes. Mais n'est-ce pas quelque chose pour les différences verbales et c'est pourquoi les gens les échangent? L'exemple des mentions de calcul je serais prudent avec. parce que j'engage des employés pour faire mes calculs:

new Employer().calculateSum( 8, 8 );

en le faisant de cette façon, je peux compter sur un employeur qui est responsable des calculs. S'il veut plus d'argent, je le libère et je laisse le collectionneur de fonction de disposition employés non utilisés faire le reste et obtenir un nouvel employé.

même en faisant valoir qu'une méthode est une fonction d'objets et qu'une fonction n'est pas liée au calcul ne m'aidera pas. Le descripteur de fonction lui-même et, idéalement, la documentation de la fonction me diront ce dont elle a besoin et ce qu'elle peut rapporter. Le reste, comme manipuler l'état d'un objet n'est pas vraiment transparent pour moi. J'attends à la fois des fonctions et des méthodes pour livrer et manipuler ce qu'ils prétendent sans avoir besoin de savoir dans le détail comment ils le font. Même une simple fonction de calcul pourrait changer l'état de la console ou l'ajouter à un fichier journal.

6
répondu Dirk Schumacher 2012-04-13 13:50:07
la source

d'après ce que j'ai compris, une méthode est toute opération qui peut être effectuée sur une classe. C'est un terme général utilisé dans la programmation.

dans de nombreuses langues, les méthodes sont représentées par des fonctions et des sous-programmes. La principale distinction que la plupart des langues utilisent pour ces derniers est que les fonctions peuvent retourner une valeur à l'appelant et un sous-programme peut ne pas. Cependant, de nombreuses langues modernes n'ont que des fonctions, mais celles-ci ne peuvent, en option, Retourner aucune valeur.

par exemple, disons que vous voulez décrire un chat et que vous aimeriez que cela puisse bâiller. Vous créeriez une classe Cat, avec une méthode Yawn, qui serait très probablement une fonction sans aucune valeur de retour.

4
répondu marcj 2008-10-01 03:53:50
la source

à une approximation de premier ordre, une méthode (dans le style c++ OO) est un autre mot pour une fonction membre, qui est une fonction qui fait partie d'une classe.

dans les langages comme C/C++ vous pouvez avoir des fonctions qui ne sont pas membres d'une classe; vous n'appelez pas une fonction qui n'est pas associée à une méthode de classe a.

4
répondu Captain Segfault 2008-10-01 04:00:07
la source

les gens IMHO voulaient juste inventer un nouveau mot pour faciliter la communication entre programmeurs quand ils voulaient se référer à des fonctions à l'intérieur des objets.

si vous dites méthodes, vous voulez dire fonctions à l'intérieur de la classe. Si vous dites fonctions vous dire simplement les fonctions en dehors de la classe.

La vérité est que les deux mots sont utilisés pour décrire les fonctions. Même si vous l'avez mal utilisé, rien de mal ne se produit. Les deux mots décrivent bien ce que vous voulez pour obtenir dans votre code.

La fonction

est un code qui doit jouer un rôle ( une fonction ) de faire quelque chose. La méthode est une méthode pour résoudre le problème.

Il fait la même chose. C'est la même chose. Si vous voulez être super précis et aller avec la convention vous pouvez appeler des méthodes comme les fonctions à l'intérieur des objets.

3
répondu Morfidon 2015-06-27 19:15:57
la source

la fonction est le concept appartenant principalement à programmation orientée procédure où une fonction est une entité qui peut traiter des données et vous renvoie de la valeur

méthode est le concept de Programmation Orientée Objet où une méthode est un membre d'une classe qui fait principalement le traitement sur les membres de la classe.

3
répondu Akshay Khale 2015-11-10 17:23:44
la source

ne compliquons pas trop ce qui devrait être une réponse très simple. Les méthodes et les fonctions sont la même chose. Vous appelez une fonction une fonction lorsqu'il est à l'extérieur de la classe, et que vous appelez une fonction, une méthode, lorsqu'elle est écrite à l'intérieur d'une classe.

3
répondu SamyCode 2017-12-14 17:03:07
la source

Je ne suis pas un expert, mais c'est ce que je sais:

  1. fonction est un terme de langage C, il se réfère à un morceau de code et le nom de la fonction sera l'identificateur pour utiliser cette fonction.

  2. méthode est le terme OO, typiquement il a un cet indicateur dans le paramètre de fonction. Vous ne pouvez pas invoquer ce morceau de code comme en C, vous devez utiliser l'objet de l'invoquer.

  3. les méthodes invoke sont également différentes. Ici invoquer sens pour trouver l'adresse de ce morceau de code. C/C++, le temps de lien utilisera le symbole de fonction pour localiser.

  4. Objecive-C est différent. Invoquez la signification d'une fonction C pour utiliser la structure des données pour trouver l'adresse. Cela signifie que tout est connu au moment de l'exécution.

2
répondu Marvin 2015-03-27 02:10:58
la source

je sais que beaucoup d'autres ont déjà répondu, mais j'ai trouvé ce qui suit est une réponse simple, mais efficace ligne simple. Bien qu'il ne semble pas beaucoup mieux que d'autres réponses ici, mais si vous le lisez attentivement, il a tout ce que vous devez savoir sur la méthode vs fonction.

, Une méthode est une fonction qui a un récepteur, en programmation orientée objet, une méthode est une fonction sur une instance d'un objet.

2
répondu f-society 2017-04-24 02:11:23
la source

Voici une explication pour la méthode vs. La fonction en utilisant des exemples JavaScript:

test(20, 50); est une fonction définie et utilisée pour exécuter certaines étapes ou retourner quelque chose qui peut être stocké/utilisé quelque part.

vous pouvez réutiliser du code: définissez le code une fois et utilisez-le plusieurs fois.

Vous pouvez utiliser le même code plusieurs fois avec des arguments différents, pour produire des résultats différents.

var x = myFunction(4, 3);   // Function is called, return value will end up in x

function myFunction(a, b) {
    return a * b;          // Function returns the product of a and b
}

var test = something.test(); ici test () peut être une méthode d'un objet ou un prototype défini sur mesure pour les objets inbuilt, voici plus d'explication:

Les méthodes

JavaScript sont les actions qui peuvent être effectuées sur des objets.

Une méthode JavaScript est une propriété contenant une définition de fonction.

Built-in de propriété/méthode pour les chaînes en javascript:

var message = "Hello world!";
var x = message.toUpperCase();
//Output: HELLO WORLD!

exemple personnalisé:

function person(firstName, lastName, age, eyeColor) {
    this.firstName = firstName;  
    this.lastName = lastName;
    this.age = age;
    this.eyeColor = eyeColor;
    this.changeName = function (name) {
        this.lastName = name;
    };
}

something.changeName("SomeName"); //This will change 'something' objject's name to 'SomeName'

vous pouvez définir des propriétés pour la chaîne, le tableau, etc Ainsi par exemple

String.prototype.distance = function (char) {
    var index = this.indexOf(char);

    if (index === -1) {
        console.log(char + " does not appear in " + this);
    } else {
        console.log(char + " is " + (this.length - index) + " characters from the end of the string!");
    }
};

var something = "ThisIsSomeString"

// now use distance like this, run and check console log

something.distance("m");

Quelques références: Javascript Méthode de l'Objet , Fonctions , Plus d'infos sur le prototype

1
répondu Lahar Shah 2017-09-28 17:32:56
la source

différence entre Méthodes et fonctions

De la lecture cette doc à la Microsoft

les membres qui contiennent du code exécutable sont collectivement connus comme les membres de fonction d'une classe. La section précédente décrit les méthodes, qui sont le principal type de fonction les membres. Cette section décrit les autres types de membres de fonction supportés par C#: les constructeurs, les propriétés, les indexeurs, les événements, opérateurs, et finaliseurs.

donc les méthodes sont le sous-ensemble des fonctions. Chaque méthode est une fonction, mais pas chaque fonction est une méthode, par exemple, un constructor ne peut pas être dit comme un méthode mais c'est une fonction.

1
répondu Siraj 2017-12-15 21:42:27
la source

En C++, parfois, la méthode utilisée pour rendre compte de la notion de fonction membre d'une classe. Cependant, récemment, j'ai trouvé une déclaration dans le livre "The C++ Programming Language 4th Edition", à la page 586 "Derived Classes "

une fonction virtuelle est parfois appelée méthode.

C'est un peu confus, mais il a dit parfois , donc ça a un peu de sens, c++ creator tend à voir des méthodes comme les fonctions peuvent être invoquées sur les objets et peuvent se comporter polymorphique.

0
répondu Lance LI 2017-09-06 07:02:43
la source

Une classe est la collecte de certaines données et la fonction en option avec un constructeur.

pendant que vous créez une instance (copie,réplication) de cette classe particulière le constructeur initialise la classe et renvoie un objet.

maintenant la classe devient objet (sans constructeur) & Les fonctions sont connus comme méthode dans le contexte de l'objet.

Donc, fondamentalement,

Classe <==nouveau==>Object

"151900920 de la Fonction" <==nouveau==>Méthode

en java, il est généralement dit que le nom du constructeur est le même que le nom de la classe, mais en réalité que le constructeur est comme le bloc d'instance et le bloc statique, mais avec un utilisateur définir le type de retour (i.e. Type de classe)

alors que la classe peut avoir un bloc statique, bloc d'instance, constructeur, fonction L'objet a généralement seulement des données et la méthode.

0
répondu Subrat Palhar 2017-12-25 07:02:42
la source