Hirdetés

Keresés

Új hozzászólás Aktív témák

  • fordfairlane
    veterán

    Próbálok kicsit játszadozni az osztályokkal, de valami nem kerek. [link]

    var kocsi = function(name, ajtok, urtartalom) {
    this.name = name;
    this.ajtok = ajtok;
    this.urtartalom = urtartalom;
    this.nameUrtartalom = null;
    this.setNameUrtartalom();
    };

    kocsi.prototype.setNameUrtartalom = function(){
    this.nameUrtartalom = this.name + '-' + this.urtartalom;
    };

    kocsi.prototype.getNameUrtartalom = function(){
    return this.nameUrtartalom;
    };

    kocsi.prototype.getAjtok = function() {
    return this.ajtok;
    };

    kocsi.prototype.getName = function() {
    return this.name;
    };

    kocsi.prototype.geturtartalom = function() {
    return this.urtartalom;
    };

    var cabrio = function(name, ajtok, urtartalom, teto) {
    kocsi.call(name, ajtok, urtartalom);
    this.teto = teto;
    };

    cabrio.prototype = Object.create(kocsi.prototype);
    cabrio.prototype.constructor = cabrio;

    cabrio.prototype.getTeto = function() {
    return this.teto;
    };


    var honda = new cabrio('S2000', 2, 1997, 'puha');
    alert(honda.getName());
    alert(honda.getNameUrtartalom());
    alert(honda.getTeto());

    Ha nincs set metódus, akkor minden frankón megy. Ellenben ha a szülőben egy set metódust csinálok, akkor gyerek hibával elszáll. Jelen esetben a setNameUrtartalom-ra azt írja, hogy nem funkció. Mit rontok? :U

    Tudom, használjak es6-ot...meg babel-t....

    kocsi.call(name, ajtok, urtartalom);

    helyett

    kocsi.call(this, name, ajtok, urtartalom);

    vagy akár

    kocsi.apply(this, arguments);

  • Jim-Y
    veterán

    Próbálok kicsit játszadozni az osztályokkal, de valami nem kerek. [link]

    var kocsi = function(name, ajtok, urtartalom) {
    this.name = name;
    this.ajtok = ajtok;
    this.urtartalom = urtartalom;
    this.nameUrtartalom = null;
    this.setNameUrtartalom();
    };

    kocsi.prototype.setNameUrtartalom = function(){
    this.nameUrtartalom = this.name + '-' + this.urtartalom;
    };

    kocsi.prototype.getNameUrtartalom = function(){
    return this.nameUrtartalom;
    };

    kocsi.prototype.getAjtok = function() {
    return this.ajtok;
    };

    kocsi.prototype.getName = function() {
    return this.name;
    };

    kocsi.prototype.geturtartalom = function() {
    return this.urtartalom;
    };

    var cabrio = function(name, ajtok, urtartalom, teto) {
    kocsi.call(name, ajtok, urtartalom);
    this.teto = teto;
    };

    cabrio.prototype = Object.create(kocsi.prototype);
    cabrio.prototype.constructor = cabrio;

    cabrio.prototype.getTeto = function() {
    return this.teto;
    };


    var honda = new cabrio('S2000', 2, 1997, 'puha');
    alert(honda.getName());
    alert(honda.getNameUrtartalom());
    alert(honda.getTeto());

    Ha nincs set metódus, akkor minden frankón megy. Ellenben ha a szülőben egy set metódust csinálok, akkor gyerek hibával elszáll. Jelen esetben a setNameUrtartalom-ra azt írja, hogy nem funkció. Mit rontok? :U

    Tudom, használjak es6-ot...meg babel-t....

    ES6-hoz nem feltétlen kell babel, ott a node az támogatja már :D

    Egyébként a setNameUrtartalom egy példány metódus amit egy példányon tudsz meghívni, a konstruktorban még nincs példányod így nem is tudod azt meghívni, meg hát értelme sincs. Inkább már ott setteld be normálisan.

    + használj nagy kezdőbetűt a classokhoz
    + a setterek igazodjanak a konvenciokhoz tehát legyen bemeneti argumentum és azt settelje be

    https://jsfiddle.net/bbvp5kbx/1/

Új hozzászólás Aktív témák