php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.12.2010, 20:36  
hts
Erfahrener Benutzer
 
Registriert seit: 07.09.2010
Beiträge: 722
PHP-Kenntnisse:
Fortgeschritten
hts befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Objekt mit statischen Methoden

Hi Leute,

ist es in JavaScript möglich, wie in PHP, ein Objekt mit statischen Methoden (nicht an Objektinstanz gebunden) UND "normalen" Methoden zu erzeugen?

Also statische Methoden allein sind schonmal möglich
PHP-Code:
var Test = {}; // Namespace

Test.staticMethod = function()
{
  
alert('Test.staticMethod');
}

// Aufruf ohne Instanz funktioniert
Test.staticTest(); 
Wenn ich jetzt noch zusätzlich die Klasse definiere, wird der Namespace mit der statischen Methode überschrieben
PHP-Code:
// Test object
function Test()
{
 
this.normalMethod = function()
 {
  
alert('this.normalMethod');
  }
}

Test.staticTest();
var 
TestObject = new Test();
TestObject.normalMethod(); 
und ich bekomme die Fehlermeldung "Fehler: Test.staticTest is not a function"

Existiert in JavaScript, wie in PHP, die Möglichkeit, ein Objekt mit statischen sowie "normalen" Methoden zu erstellen?
hts ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 18.12.2010, 20:45  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von hts Beitrag anzeigen
Code:
var Test = {}; // Namespace
Das ist kein richtiger „Namespace“, sondern schlicht und einfach ein leeres Objekt (JavaScript-Basistyp object).

Zitat:
Wenn ich jetzt noch zusätzlich die Klasse definiere, wird der Namespace mit der statischen Methode überschrieben
Code:
// Test object
function Test()
Klar, diese Schreibweise legt ein neues (Funktions-)Objekt unter dem Bezeichner Test an - und überschreibt damit das vorherige Objekt mit diesem Namen.

Du musst es also nur in der richtigen Reihenfolge machen:
Code:
function Test() { ... }
Test.staticProperty = "foo";
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 18.12.2010, 20:59  
hts
Erfahrener Benutzer
 
Registriert seit: 07.09.2010
Beiträge: 722
PHP-Kenntnisse:
Fortgeschritten
hts befindet sich auf einem aufstrebenden Ast
Standard

Ich danke dir, du hast mir echt geholfen, vor allem mit deinen Erläuterungen - super!

Das mit dem "Namespace" habe ich schon öfter gelesen, eben gerade hier: http://justjs.org/js-oop/static-methods-in-javascript/
Jedenfalls "funzt es jetzt" , nachdem ich die Reihenfolge umgedreht habe.

Danke nochmals.
hts ist offline   Mit Zitat antworten
Alt 18.12.2010, 21:07  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat aus der von dir verlinkten Seite:
Zitat:
You have static functions in any namespace not just inside an objects namespace. A namespace in java[script] is just any object that you like. There is a global namespace also this is where you[r] functions and definitions will go if you don’t specify a namespace.
OK, in dem Sinne kann man das natürlich schon als Namespace bezeichnen - ein Objekt bildet ja einen gewissen „Rahmen“ bzw. Container, in dem man Eigenschaften/Methoden „sammeln“ kann.
Und der globale Namespace ist in JavaScript, wenn es in einem Webbrowser läuft, schlicht und einfach das window-Objekt.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB 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
Objekt in Session-Array ablegen mupilz PHP-Fortgeschrittene 2 30.08.2010 17:25
[Erledigt] Problem beim dynamischen Erweitern von Arrays in Object Porperties dille001 PHP Tipps 2010 3 24.05.2010 11:52
Ergebnis einer Datenbankabfrage als Objekt chunky PHP Tipps 2010 7 27.01.2010 21:38
Objekt per Klassenmethode löschen Ti-Systems PHP Tipps 2010 4 20.01.2010 19:28
[Erledigt] Objekt Iteration Löschmethode stayInside PHP-Fortgeschrittene 10 29.11.2009 15:07
[Erledigt] Von einem Objekt auf ein anders Objekt zugreifen Xenon54 PHP Tipps 2009 12 16.10.2009 16:21
Objekt löschen via Methodenübergabe desselben nikosch Software-Design 19 01.06.2009 00:38
[Erledigt] Objekt an Konstruktor übergeben hawkeye78 PHP Tipps 2009 7 28.02.2009 19:01
Kindklasse: Methoden über _call() ergänzen? ciss PHP Tipps 2008 2 29.12.2008 18:08
[Erledigt] Methoden auf Objekt aufrufen (und fangen), die nicht existieren tsisson PHP Tipps 2008 2 07.10.2008 18:19
Objekt im GET-Query wird nicht übertragen Ralpho PHP-Fortgeschrittene 10 05.05.2008 10:03
Klassensammlung über ein Objekt zur Verfügung stellen ecomeback PHP Tipps 2007 7 14.07.2007 00:01
[Erledigt] PHP5 OOP Zugriff aus einem Objekt auf ein externes Objekt PHP Tipps 2006 5 28.01.2006 16:05
Objekt übergeben Fatal Error PHP Tipps 2007 5 28.12.2005 14:43
kann sich ein Objekt selbst serialisieren? ajo_silent PHP Tipps 2005-2 24 27.06.2005 09:13

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php statisches objekt, javascript statisches objekt, php statische methoden, js statische klasse, objekt statische methode, statische methoden objektinstanz aufrufen php, php statische methoden eines dynamisches objekt, php normale und statische klassen, php statische funktionen objekt übergeben, javascript statische methoden, statische methoden im javascript, php objekte an statische methode übergeben, php statische sowie normale methode, php static \ohne instanz\, methoden überschreiben php, statische methoden php, php statische methode, php statische methoden empfehlenswert?, javascript statische objekte, php statische funktionen im objekt

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:20 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