<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Forum Pasja Informatyki - Najnowsze z tagiem prototyp</title>
<link>https://forum.pasja-informatyki.pl/tag/prototyp</link>
<description>Powered by Question2Answer</description>
<item>
<title>Ocena projektu strony</title>
<link>https://forum.pasja-informatyki.pl/547120/ocena-projektu-strony</link>
<description>Witam wszystkich Forumowiczów!&lt;br /&gt;
&lt;br /&gt;
Tworzę stronę siłowni w celu umieszczenia jej w portfolio. Aktualnie jest to jedynie mockup (stworzony w Figmie). Chciałbym prosić o ocenę, co poprawić itd. &amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Jest to na razie home page, menu docelowo ma przenosić na osobne podstrony.&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Dziękuję za poświęcony czas,&lt;br /&gt;
miłego wieczoru!</description>
<category>Nasze projekty</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/547120/ocena-projektu-strony</guid>
<pubDate>Mon, 19 Jul 2021 20:55:55 +0000</pubDate>
</item>
<item>
<title>Zmiana konstruktora prototypu - po co?</title>
<link>https://forum.pasja-informatyki.pl/481360/zmiana-konstruktora-prototypu-po-co</link>
<description>

&lt;p&gt;Witam,&lt;/p&gt;



&lt;p&gt;Fragment kodu wygląda tak:&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
function Footballer(first, surname, club, strongFoot){
    this.first=first;
    this.surname=surname;
    this.club=club;
    this.foot=strongFoot;
}

    //change club
    Footballer.prototype.changeClub = function(newClub){
        return `${this.first} ${this.surname} moves to ${this.club=newClub}.`;
    }

    //get some informations about the player
    Footballer.prototype.informations = function(){
        return `${this.first} ${this.surname}, plays in ${this.club}.`;
    }

function Goalkeeper(first, surname, club, defStyle){
    Footballer.call(this, first, surname, club);
    this.defStyle=defStyle;
    }

    Goalkeeper.prototype = Object.create(Footballer.prototype, {});&lt;/pre&gt;



&lt;p&gt;Czyli konstruktor obiektu Goalkeeper przejmuje właściwości i metody konstruktora Footballer. Natomiast wedle poradników w sieci, należy jeszcze zmienić prototyp samego konstruktora Goalkeeper (po wykonaniu powyższego kodu jego prototypem jest konstruktor Footballer:&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
Goalkeeper.prototype.constructor = Goalkeeper;&lt;/pre&gt;



&lt;p&gt;Nie jest wyjaśnione, czemu ma służyć ta linijka. Zmienia ona to:&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
constructor: ƒ Footballer(first, surname, club, strongFoot)
&lt;/pre&gt;



&lt;p&gt;na poniższe.&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
constructor: ƒ Goalkeeper(first, surname, club, defStyle)&lt;/pre&gt;



&lt;p&gt;Nieobecność tej linijki nie powoduje żadnych błędów, stąd moje pytanie: co daje nam wyżej przytoczona zmiana właściwości &lt;strong&gt;Goalkeeper.prototype.constructor&lt;/strong&gt;, skoro nic nie zmienia to w sposobie działania konstruktora?&lt;/p&gt;



&lt;p&gt;Przepraszam za takie nawarstwienie informacji, ale uczę się JSa krótko i dopiero przyswajam te zagadnienia.&lt;/p&gt;



&lt;p&gt;Z góry dziękuję.&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/481360/zmiana-konstruktora-prototypu-po-co</guid>
<pubDate>Fri, 10 Apr 2020 19:35:40 +0000</pubDate>
</item>
<item>
<title>Jak przypisać prototyp konstruktora do innego konstruktora?</title>
<link>https://forum.pasja-informatyki.pl/481307/jak-przypisac-prototyp-konstruktora-do-innego-konstruktora</link>
<description>

&lt;p&gt;Witam,&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Uczę się obiektówki w JS i mam stworzone dwa konstruktory:&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
function Footballer(first, surname, club, strongFoot){
    this.first=first;
    this.surname=surname;
    this.club=club;
    this.foot=strongFoot;
}

function Goalkeeper(first, surname, club, defStyle){
    this.first=first;
    this.surname=surname;
    this.club=club;
    this.defStyle=defStyle;
    }&lt;/pre&gt;



&lt;p&gt;Jednocześnie dla metod dokonałem zmian w prototypie konstruktora Footballer:
&lt;br&gt;
&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
//change club
    Footballer.prototype.changeClub = function(newClub){
        return `${this.first} ${this.surname} moves to ${this.club=newClub}.`;
    }

//get some informations about the player
    Footballer.prototype.informations = function(){
        return `${this.first} ${this.surname}, plays in ${this.club}.`;
    }&lt;/pre&gt;



&lt;p&gt;Dla obiektów stworzonych przez oba konstruktory chciałbym mieć dostęp do powyższego prototypu, ale przy tworzeniu obiektu z użyciem&amp;nbsp;&lt;strong&gt;new Goalkeeper()&amp;nbsp;&lt;/strong&gt;ani &lt;strong&gt;Object.create()&lt;/strong&gt;, ani &lt;strong&gt;Object.assign()&lt;/strong&gt; nie działa tak, jak bym chciał. Widać ponadto, że oba konstruktory zawierają powtarzające się właściwości, a zapis obydwu konstruktorów można skrócić, stąd pytanie - które z narzędzi JavaScriptu pozwala na przypisanie dwóm konstruktorom tego samego prototypu? Lub chociaż pobrać prototyp jednego konstruktora (Footballer) i przypisać go do drugiego (Goalkeeper)?
&lt;br&gt;

&lt;br&gt;
Z góry dziękuję za pomoc.&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/481307/jak-przypisac-prototyp-konstruktora-do-innego-konstruktora</guid>
<pubDate>Fri, 10 Apr 2020 14:03:25 +0000</pubDate>
</item>
<item>
<title>Wzorzec projektowy Prototyp a dwa konstruktory i metody</title>
<link>https://forum.pasja-informatyki.pl/455362/wzorzec-projektowy-prototyp-a-dwa-konstruktory-i-metody</link>
<description>

&lt;p&gt;Hej wszystkim,
&lt;br&gt;
próbuję ogarnąć wzorzec projektowy prototyp i nie mogę pojąć w nim pewnych aspektów, mianowicie coś takiego:&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
class Monster
{
public:
  virtual ~Monster() {}
  virtual Monster* clone() = 0;

  // Other stuff...
};


class Ghost : public Monster {
public:
  Ghost(int health, int speed)
  : health_(health),
    speed_(speed)
  {}

  virtual Monster* clone()
  {
    return new Ghost(health_, speed_);
  }

private:
  int health_;
  int speed_;
};&lt;/pre&gt;



&lt;p&gt;Czy wywołanie po dwukropku zmiennych health i speed dodaje do klasy bazowej te zmienne? Wiem że jest to narzucenie wartości klasie bazowej ale przecież nie ma w niej tych zmiennych.
&lt;br&gt;

&lt;br&gt;
A druga sprawa w innym przykładzie występuje w klasie pochodnej coś takiego:
&lt;br&gt;
&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
 Dlugopis(const int dlugosc, const QString kolor, int paczka = 0 )
        : dlugosc( dlugosc ), kolor( kolor ), paczka(new int(paczka))
    {
    }

    Dlugopis( const Dlugopis &amp;amp; kopia )
        : dlugosc( kopia.dlugosc )
        , kolor( kopia.kolor )
    {
        this-&amp;gt;paczka = new int(kopia.getPaczka());
    }&lt;/pre&gt;



&lt;p&gt;w klasie pochodnej i teraz nie rozumiem, czemu ta klasa ma dwa konstruktory? Rozumiem że jedna jest od kopiowania ale czy ktoś mógłby wytłumaczyć dlaczego to tak wygląda?&lt;/p&gt;</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/455362/wzorzec-projektowy-prototyp-a-dwa-konstruktory-i-metody</guid>
<pubDate>Sat, 26 Oct 2019 08:39:35 +0000</pubDate>
</item>
<item>
<title>Publiczna metoda dołączona do prototypu obiektu, która zwraca jego prywatne atrybuty</title>
<link>https://forum.pasja-informatyki.pl/108999/publiczna-metoda-dolaczona-prototypu-obiektu-ktora-zwraca-jego-prywatne-atrybuty</link>
<description>

&lt;p&gt;Tworzę&amp;nbsp;konstruktor, w którym umieszczam metody wyrzucające prywatne zmienne do obiektów:&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
    function Customer(name, ownPin)
    {
        var ownerName = name,
            ownerPin = ownPin;

        this.getOwnerName = function()
        {
            console.log('Owner name is: ', ownerName);
        };

        this.getOwnerPinCode = function()
        {
            console.log('Owner PIN code is: ', ownerPin);
        }
    }

    var owner = new Customer('tester', 1234);
    owner.getOwnerName();
    owner.getOwnerPinCode();&lt;/pre&gt;



&lt;p&gt;Jest ok, z tym że gdy chcę przesunąć te dwie metody (&lt;strong&gt;getOwnerName()&lt;/strong&gt; i &lt;strong&gt;getOwnerPinCode()&lt;/strong&gt;) z samego konstruktora do łańcucha (wykorzystać dziedziczenie prototypowe) tworzonych obiektów, to nie wiem jak to uczynić.&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
    Customer.prototype.getOwnerPinCode = function()
    {
        return this.ownerPin;
    };&lt;/pre&gt;



&lt;p&gt;Gdy powyższy kod umieszczę pod konstruktorem, to ani&amp;nbsp;&lt;strong&gt;this.ownerPin,&amp;nbsp;&lt;/strong&gt;ani&amp;nbsp;&lt;strong&gt;ownerPin&lt;/strong&gt;&amp;nbsp;nie są widoczne (są&amp;nbsp;&lt;em&gt;undefined&lt;/em&gt;) - co jest w sumie logiczne. Zatem w&amp;nbsp;jaki sposób uzyskać dostęp do tych zmiennych? Metody&amp;nbsp;&lt;strong&gt;.call/.bind&lt;/strong&gt;?&lt;/p&gt;



&lt;p&gt;Chodzi mi o to, aby konstruktor obiektu tworzył &lt;span style=&quot;text-decoration: underline;&quot;&gt;tylko jego atrybuty&lt;/span&gt;, zaś same funkcje (aby oszczędzać pamięć - taki jest chyba tego cel) były doczepione do prototypu.&amp;nbsp;Wtedy&amp;nbsp;wszystkie funkcje będą&amp;nbsp;miały dostęp do prywatnych atrybutów tych obiektów, zaś same&amp;nbsp;funkcje&amp;nbsp;nie będą tworzone wielokrotnie.&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/108999/publiczna-metoda-dolaczona-prototypu-obiektu-ktora-zwraca-jego-prywatne-atrybuty</guid>
<pubDate>Sun, 14 Feb 2016 19:25:32 +0000</pubDate>
</item>
</channel>
</rss>