Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 4 odgovora
  • 2.222 pregleda

Najnovija ↓

javascript kao Objektno Orjentisan jezik, osnove 29.08.2009. u 13:06 · pre 209 meseci #1
Pozdrav svima,

Da li neko moze da mi kaze u cemu gresim.
Ovo je kod koji koristim:
Code:
// JavaScript Document
var IFrameDropDown = {
    topLeftX : "0px",
    topLeftY : "0px",
    width : "100px",
    height : "200px",
    url : "mvm.php",
    inputField : Object,
    init :     function()
            {
                this.inputField = document.getElementById("whiteplayer");
                this.addEvents(this.inputField, "change");
            },
    addEvents : function(obj, e)
                {
                    if(window.addEventListener){ // Mozilla, Netscape, Firefox
                        obj.addEventListener(e, this.alerter, false);
                    } else { // IE
                        obj.attachEvent("on" + e, this.alerter);
                    }
                },
    alerter :function()
                {
                    alert("sdf");
                },
    setTopLeftX:function(x)
                {
                    this.topLeftX = x + "px";
                },
    setTopLeftY:function(y)
                {
                    this.topLeftY = y + "px";
                }
};
window.onload = IFrameDropDown.init;


Dobijam sledecu poruku o gresci:

this.addEvents is not a function

u liniji

this.addEvents(this.inputField, "change");


Kada u toj liniji umesto this stavim IFrameDropDown, sve radi dobro.

Zar ne bi trebalo da radi i sa this.
Hvala unapred
Re: javascript kao Objektno Orjentisan jezik, osnove 29.08.2009. u 20:11 · pre 209 meseci #2
Ne, ne bi trebalo. Javascript nije object-oriented, vec prototype-based jezik.
Postoje frejmvorci koji pokusavaju da emuliraju object-oriented stil programiranja u javascriptu (od kojih je najpoznatiji Prototype), ali nije moguce od javascripta napraviti objektno orijentisan jezik u potpunosti (bar dok ne zazivi JavaScript 2.0), sto je po meni GoodThing!

elem, evo kako bi tvoj kod trebalo napisati da radi ono sto zelis:
Code:

function IFrameDropDown() {
    this.topLeftX = "0px";
    this.topLeftY = "0px";
    this.width = "100px";
    this.height = "200px";
    this.url = "mvm.php";
    this.inputField = Object;

    this.init  = function() {
         this.inputField = document.getElementById("whiteplayer");
         this.addEvents(this.inputField, "change");
    };
    this.addEvents = function(obj, e) {
         if(window.addEventListener){ // Mozilla, Netscape, Firefox
             obj.addEventListener(e, this.alerter, false);
         } else { // IE
             obj.attachEvent("on" + e, this.alerter);
         }
    };
    this.alerter = function() {
         alert("sdf");
    };
    this.setTopLeftX = function(x) {
         this.topLeftX = x + "px";
    };
    this.setTopLeftY = function(y) {
          this.topLeftY = y + "px";
    };
};

var iframedd = new IFrameDropDown;
window.onload = function() {
     iframedd.init();
}
Potpis
rafforum.rs - Forum Računarskog Fakulteta
Re: javascript kao Objektno Orjentisan jezik, osnove 29.08.2009. u 23:12 · pre 209 meseci #3
Hvala,

ja sam ga ovako resio:

Code:
// JavaScript Document
var IFrameDropDown = {
    topLeftX : "0px",
    topLeftY : "0px",
    width : "100px",
    height : "200px",
    url : "mvm.php",
    inputField : Object,
    addEvents : function (obj, e)
                {
                    if(window.addEventListener){ // Mozilla, Netscape, Firefox
                        obj.addEventListener(e, this.alerter, false);
                    } else { // IE
                        obj.attachEvent("on" + e, this.alerter);
                    }
                },
    alerter :function ()
                {
                    alert("sdf");
                },
    init :     function ()
            {
                alert(this);
                this.inputField = document.getElementById("whiteplayer");
                this.addEvents(this.inputField, "change");
            },
    setTopLeftX:function (x)
                {
                    this.topLeftX = x + "px";
                },
    setTopLeftY:function (y)
                {
                    this.topLeftY = y + "px";
                }
};
function pageLoader() {
    IFrameDropDown.init();
}

window.onload = pageLoader;


i sad lepo radi
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme