• [^] # Re: Chouette

    Posté par (site web personnel) . En réponse à la dépêche ECMAScript 2015 est approuvé. Évalué à 6. Dernière modification le 29 juin 2015 à 17:42.

    PODs – c'est du jargon C++, je veux dire les structures sans méthodes.

    N'importe quoi !
    Un POD n'a rien à voir avec des structures sans méthodes !

    // Ceci est un POD bien qu'il ait une méthode:
    class Rectangle {
     public:
     int width, height;
     int area() const { return width * height; }
    };
    // Et ceci n'est pas un POD alors qu'il n'a pas de méthodes
    struct Person {
     std::string nom;
     std::string prenom;
    };

    Un POD est grossomodo un type qui peut être copié avec memcpy car il n'y a pas besoin d'appler un constructeur, destructeur, ou autre operateur qu'il soit explicitement déclaré ou implicite.

    http://en.cppreference.com/w/cpp/concept/PODType
    https://en.wikipedia.org/wiki/Plain_old_data

    --

    Et même dans le contexte du javascript, pourquoi ne pourait-on pas copier les structures qui ont des méthode.

    Par exemple:

    var a = { w: 3, h:4, area: function() { return this.w * this.h; } }; 
    var b = a; // ne serait-ce pas utile d'avoir une vrai copie qui copie toutes les propriétés icnluant la fonction?
    b.w = 34;
    console.log(a.area()); // affiche "136" (car 'b' et 'a' sont une réference vers le même object