Objekty

function Player(url, name){
    this.name = name; // public 
    var m_url = url; // private
 
    // verejna metoda
    this.start = function(){
        //now i can access m_url
    };
    this.stop = function(){
        //now i can access m_url
    }
    // soukroma metoda
    function foofuf(){    
    }
 
    //privilegovana metoda (verejna, ktera umi pristupovat k soukromym promennym)
    this.privilFoo(){
    return m_url;
    }
 
    // staticke promenne
    var static_int = 0;
    Player.prototype.getStatic = function(){ return static_int;};
    Player.prototype.setStatic = function(v){ static_int = v; };
}
 
var p1 = new Player();
var p2 = new Player();
p1.setStatic(100);
alert( p2.getStatic() ); //will print 100.

DEDICNOST I: Vytvoreni noveho objektu dle jineho

Metoda beget() vytvori novy objekt a ten puvodni se bere jako prototype.

if (typeof Object.beget !== 'function') { 
   Object.beget = function (o) {
       var F = function () {}; 
       F.prototype = o; return new F();
       };
 }
 
var betterPlayer = Object.beget(player);
 
// pokud zmenim stooge, tak se zmena okamzite propaguje do another_stooge
 
// priklad na dedicnost
 
betterPlayer.pause = function .... // prida novou funkci do podtridy, k betterPlayer uvnitr function pristupuju pres this

Dynamicky generovane

function User(array){
for(var i in array){
(function(){
this["get"+i] = function(){
return array[i];
};
this["set"+i] = function(value){
array[i] = value;
};
})();
}
 
var u = new User({
name: "Bob";
lastName: "Marley"
});
 
alert(u.name); // nejde
alert(u.getname()); // jde
 
}

Trochu jinak

var myObject = { 
    value: 0; 
    increment: function (inc) { this.value += typeof inc === 'number' ? inc : 1; }
    };
 
myObject.increment();

Odkazy

 
/disk_1/www/cz/ladariha/wiki/data/pages/programovani/javascript/oop.txt · Poslední úprava: 2011/07/29 22:12 autor: ladariha
 
Kromě míst, kde je explicitně uvedeno jinak, je obsah této wiki licencován pod následující licencí:CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki