php.de

Zurück   php.de > php.de Intern > Off-Topic Diskussionen

Off-Topic Diskussionen Mach mal Pause vom Programmieren!

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
Alt 14.10.2008, 17:35  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.267
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard OOP in JavaScript

Hallo,

ich suche ein JavaScript-Buch oder Tutorial, dass in einem grösseren Umfang auf OOP eingeht. Also wie man eigentlich Klassen schreibt (da gibt es ja mehrere Möglichkeiten), Objekte instanziert, private und public Eigenschaften/Methoden und das auch näher auf den Scope eingeht, der ja bei Ajax und den Callback-Funktionen oft verloren geht. Übergebe ich also als Callback eine Methode (meinObjekt.eineMethode), ist der this Kontext ja nun plötzlich der des aufrufenden Objektes und nicht mehr der von meinObjekt. Wie man das nun sauber löst wüsste ich gerne.

Gruss,
chriz
Chriz ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 14.10.2008, 18:05  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.706
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Hallo,

ein Tutorial oder Buch, das deinen Ansprüchen wirklich gerecht wird, kann ich dir jetzt nicht nennen, allerdings kann ich versuchen, dir direkt zu helfen.

Also: Klassen sind in JavaScript grundsätzlich Funktionen, was schon allein darin begründet liegt, dass alle Objekte Member von window sind.
Member von „Unerklassen“ lassen sich einmal mit
Code:
function X()
{
    this.y = 5;
}
oder über die prototype-Eigenschaft
Code:
function X()
{
}

X.prototype.y = 5;
festlegen. Dabei handelt es sich in beiden Fällen um public-Member. private-Member kannst du durch das Schlüsselwort var festlegen:
Code:
function X()
{
    var y = 5;
}
Um bei AJAX-Request nicht den Kontext zu verlieren, gibt es sicherlich verschiedene Ansätze, die alle ihre Vorteile und Nachteile haben. Ich persönlich mache das so:
Code:
window.onload = function()
{
    var reqObject = null;
    
    if (typeof XMLHttpRequest != 'undefined') {
        reqObject = new XMLHttpRequest();
    } else {
        try {
            reqObject = new ActiveXObject("Msxml2.XMLHTTP");
        } catch(e) {
            try {
                reqObject = new ActiveXObject("Microsoft.XMLHTTP");
            } catch(e) {
                return;
            }
        }
    }
    
    reqObject.open('GET', 'test.txt', true);
    
    var readyStateChange = {
        sender : reqObject,
        
        doAction : function()
        {
            if (this.sender.readyState == 4) {
                alert(this.sender.responseText);
            }
        }
    };
    
    reqObject.onreadystatechange = function()
    {
        readyStateChange.doAction();
    };
    
    reqObject.send(null);
};
Ein Tutorial, das dem, was du suchst, vielleicht noch am ehesten Gerecht wird, ist sicherlich das: Peter Kropff - JavaScript - OOP mit JavaScript
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems

Geändert von Manko10 (14.10.2008 um 18:44 Uhr).
Manko10 ist offline   Mit Zitat antworten
Alt 14.10.2008, 19:40  
Erfahrener Benutzer
 
Benutzerbild von phpdummi
 
Registriert seit: 06.06.2008
Beiträge: 1.631
PHP-Kenntnisse:
Anfänger
phpdummi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich wüsste auch nicht was es da noch zu sagen gibt.
Guck dir mal Javascript MVC Frameworks an.
__________________
"Nobody is as smart as everybody" - Kevin Kelly
— The best things in life aren't things
phpdummi ist offline   Mit Zitat antworten
Alt 14.10.2008, 20:18  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Da gibt es denke ich schon noch einiges mehr zu sagen

Was ich ganz gut gemacht fand, war diese "Präsentation" von John Resig:
Learning Advanced JavaScript
(Durch einen Doppelklick kannst du den Code jederzeit bearbeiten und selbst ausprobieren).


Zu den Javascript-MVC-Frameworks: Ich hab mir mal Jamal angeschaut, hat mir aber irgendwie garnicht zugesagt, welche benutzt du bzw. kennst du noch?
__________________
Today you...Tomorrow me.
agrajag ist offline   Mit Zitat antworten
Alt 14.10.2008, 21:09  
Erfahrener Benutzer
 
Benutzerbild von phpdummi
 
Registriert seit: 06.06.2008
Beiträge: 1.631
PHP-Kenntnisse:
Anfänger
phpdummi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich finde die Frameworks kann man alle in die Tonne kloppen :/
Ich bleibe bei jQuery und bin gespannt was Nokia und Microsoft nun dazu beitragen ...

Andere Frameworks:(Fast alles aus dem PHPmag)
__________________
"Nobody is as smart as everybody" - Kevin Kelly
— The best things in life aren't things
phpdummi ist offline   Mit Zitat antworten
Alt 14.10.2008, 21:12  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.706
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Also ich benutzt eigentlich auch nur jQuery.
Wenn ich allerdings mal größere und komplexere Browseranwendungen programmiere (was aber eher selten vorkommt), greife ich gerne auf ExtJS zurück, da ich dort jede Menge Steuerelemente geboten bekomme. zudem bietet es auch einen Adapter für jQuery.
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline   Mit Zitat antworten
Alt 14.10.2008, 21:15  
Erfahrener Benutzer
 
Benutzerbild von phpdummi
 
Registriert seit: 06.06.2008
Beiträge: 1.631
PHP-Kenntnisse:
Anfänger
phpdummi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ist das unobstrusive?
__________________
"Nobody is as smart as everybody" - Kevin Kelly
— The best things in life aren't things
phpdummi ist offline   Mit Zitat antworten
Alt 14.10.2008, 21:25  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.706
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

unobstrusive? Oder meinst du unobtrusive (unaufdringlich)?
Also die Steuerelemente werden jedenfalls erzeugt, ohne, dass dafür vorher HTML-Code generiert werden muss. Du kannst also praktisch ein leeres Dokument haben und per ExtJS kannst du dann Steuerelemente darauf erstellen (selbst schreibst du keine HTML-Code, das macht Ext für dich).
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline   Mit Zitat antworten
Alt 14.10.2008, 22:51  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.267
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Hallo, danke für eure Antworten.

Ja das Tutorial von Peter Kropff habe ich auch gefunden (wie immer findet sich nach dem Posten gleich eine Antwort), da wurde auch meine Frage zu Klassen und JavaScript beantwortet: es gibt direkt keine.

Nur was ist der tatsächliche Unterschied dieser Konstrukte:
Code:
var MyObject = [];
MyObject.myMethod = function() {
}
//
var MyObject = function() {
  this.myMethod = function() {
  }
}
// 
var MyObject = new function() {
}
Wozu das "new" bei manchen Instanzierungen. Habe gehört es soll Singleton sein, wenn es aber keine Klassen (nur Prototyping?) gibt, wozu dann eine Singleton-Instanz?

Die Frage zum Scope ist auch nicht zufriedenstellend, ich benutze ein Framework, wo ich den onreadystate nicht mehr abfrage (speziell YUI und Protoype JS), sondern eben ein Callback übergeben muss, das im Idealfall eben eine Objektmethode sein soll.

Wie gesagt, der Scope geht dann verloren, da this nicht mehr auf das Objekt der Methode zeigt, sondern auf das aufrufende Script (in der der Ajax-Befehl steht).

Das ist für mich alles ziemliches gerate, daher würde ich das gerne in einem Buch oder ähnlichem Nachlesen. Leider stehts auch überall anders drin.

Vielleicht schau ich mal die Tage in die Quelltexte der Frameworks rein.
Chriz ist offline   Mit Zitat antworten
Alt 14.10.2008, 23:35  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Ich glaube auf das mit "new" und was der Unterschied ist wird in meinem Link kurz eingegangen.


Das "this-Problem" kannst du bei Prototype z.B. über die bind()-Methode umgehen. damit kannst du ein beliebiges Objekt übergeben, dass in der Callback-Funktion das "this" sein soll.

Wenn du Prototype nutzt kann ich dir das Buch "Practical Prototye & Script.aculo.us" empfehlen.

Ich selbst bin gerade am überlegen ob ich mir "Pro JavaScript Techniques" von John Resig zulegen soll oder lieber noch auf sein neues Buch warte....
__________________
Today you...Tomorrow me.
agrajag ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
JS: Einführung - Javascript im Schichtenmodell nikosch Tutorials 4 11.04.2009 17:06
Lange Verarbeitungszeiten - Zuviel JavaScript? [-UFO-]Melkor HTML, Usability und Barrierefreiheit 2 15.06.2007 23:54
http user mit Javascript abfrage tennessee HTML, Usability und Barrierefreiheit 3 31.10.2006 13:18
Unsichtbares Formularfeld mit Javascript ansprechen mAy^daY HTML, Usability und Barrierefreiheit 6 13.08.2006 21:25
PHP + Javascript + MYSQL socke PHP Tipps 2006 4 02.04.2006 22:02
Ist JavaScript OOP sinnvoll? HStev HTML, Usability und Barrierefreiheit 2 26.01.2006 12:11
Variable wird geändert bei Übergabe an Javascript PHP Tipps 2007 4 17.12.2005 16:53
[Erledigt] Javascript Aufklappen/Zuklappen HTML, Usability und Barrierefreiheit 5 13.12.2005 14:06
[Erledigt] Mit PHP prüfen ob JavaScript beim Browser aktiviert ist? HTML, Usability und Barrierefreiheit 3 21.07.2005 12:43
Php soll Javascript beschleunigen PHP Tipps 2005 4 17.04.2005 12:56
Javascript ON/OFF Connar PHP Tipps 2005 3 03.04.2005 09:47
Formulare mit arrays mit php und gleichzeitig mit JavaScript PHP-Fortgeschrittene 2 14.10.2004 15:33
JavaScript in JavaScript geschriebene Html-Datei einbinden. woods HTML, Usability und Barrierefreiheit 6 06.09.2004 18:33
Javascript HTML, Usability und Barrierefreiheit 5 31.08.2004 18:30
php + Javascript, Variablenübergabe PHP Tipps 2004 14 28.07.2004 15:42

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
javascript oop tutorial, javascript oop, oop javascript, oop javascript tutorial deutsch, jquery oop, javascript oop tutorial deutsch, javascript object oriented programming tutorial, javascript oop deutsch, oop mit javascript, javascript oop buch, oop javascript tutorial, javascript callback tutorial, javascript oop framework, jquery oop tutorial, http://www.php.de/off-topic-diskussionen/48135-oop-javascript.html, javascript mvc tutorial, oop jquery, tutorial javascript oop, js sender, http is undefined oop ajax

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:33 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum