<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="http://unfoldingneurons.com/"
	>

<channel>
	<title>DaRaFF&#039;s Blog &#187; Javascript</title>
	<atom:link href="http://daraff.ch/category/softwareengineering/java-script/feed/" rel="self" type="application/rss+xml" />
	<link>http://daraff.ch</link>
	<description>Gedanken über Themen, die mich beschäftigen</description>
	<lastBuildDate>Sun, 05 Feb 2012 07:02:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>PHP == Java == Javascript?</title>
		<link>http://daraff.ch/2010/09/php-java-javascript/</link>
		<comments>http://daraff.ch/2010/09/php-java-javascript/#comments</comments>
		<pubDate>Sat, 18 Sep 2010 09:33:36 +0000</pubDate>
		<dc:creator>DaRaFF</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Master in Software Engineering]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://daraff.ch/?p=1396</guid>
		<description><![CDATA[Aufgrund meines Studiums werde ich dazu genötigt verschiedene Programmiersprachen  kennen zu lernen. Anfangs war es für mich ein bisschen befremdlich die Konzepte von C oder C++ zu lernen. In der Zwischenzeit finde ich es aber unglaublich interessant die Feinheiten bzw. &#8230; <a href="http://daraff.ch/2010/09/php-java-javascript/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Aufgrund meines Studiums werde ich dazu genötigt verschiedene Programmiersprachen  kennen zu lernen. Anfangs war es für mich ein bisschen befremdlich die Konzepte von C oder C++ zu lernen.</p>
<p>In der Zwischenzeit finde ich es aber unglaublich interessant die Feinheiten bzw. die Unterschiede der verschiedenen Programmiersprachen zu erkennen und zu lernen. Der Vorteil liegt auf der Hand. Wenn man weiss, wie sich aktuelle Sprachen unterscheiden, sollte es einem auch in der Zukunft nicht schwer fallen, neue Sprachen und Konzepte zu lernen, weil man weiss, worauf man achten muss.</p>
<p>Momentan mag ich die drei Sprachen Java, PHP und Javascript am meisten und darum habe ich inzwischen als ausgewiesener FizzBuzz Fan das Coding Kata in allen 3 Sprachen gelöst. Ihr könnt übrigens die gelösten Katas auf <a href="http://github.com/DaRaFF/examples">meinem Github Account</a> herunterladen.</p>
<p>Mit diesem Post möchte ich erreichen, dass man erkennt wie ähnlich Java und PHP inzwischen sind und wie sich Javascript von diesen 2 Sprachen deutlich unterscheidet.</p>
<h2>Die Klasse FizzBuzz</h2>
<p>Die FizzBuzz Klasse offenbart praktisch noch keine Unterschiede zwischen den 3 Sprachen.<br />
<script src="http://gist.github.com/585496.js"> </script></p>
<h2>Die Klasse FizzBuzzSequence</h2>
<p>Auch in dieser Klasse unterscheiden sich Java und PHP nur unwesentlich. Dadurch das Java Typensicher ist und man auch die Array Grösse schon bei der Initialisierung kennen muss, gibt es minimal mehr zu schreiben, als bei PHP. Die Funktion implode gibt es meines Wissens in Java nicht, darum musste ich einen Helper dafür programmieren -&gt; Dies ist meiner Meinung nach übrigens eine der grossen Stärken von PHP &#8211; sie bietet sehr viele einfache Helper Funktionen, die ich in anderen Sprachen vermisse.<br />
Wenn man jetzt die PHP und die Java Klasse mit dem Javascript Example vergleicht, werden die Unterschiede schon deutlich. Und spätestens hier muss man erkennen, dass die Konzepte rund um Javascript sich deutlich von denen von PHP und Java unterscheiden. Das ist sicherlich auch einer der Gründe, warum Javascript einen so schlechten Ruf geniesst. Bei einfachen Beispielen, sieht der Syntax sehr ähnlich aus. Man kann schnell zum Schluss kommen, dass man die Sprache nicht noch extra lernen muss, sonder eigentlich schon fast alles im Griff hat. Wenn man sich aber tiefergreifend mit der Sprache beschäftigt, sieht man, dass es sehr grosse Unterschiede gibt.<br />
<script src="http://gist.github.com/585508.js"> </script></p>
<h2>Unit Testing mit JUnit / PHPUnit</h2>
<p>Als letztes möchte ich das Unittesting zwischen Java und PHP vergleichen (für Javascript habe ich kein Example gemacht). Auch hier zeigen sich deutlich die Ähnlichkeiten. Einerseits ist der Syntax sehr ähnlich und zweitens lehnen sich sowohl JUnit als auch PHPUnit an den xUnit Standard. Wenn man also Unittesting erst einmal im Griff hat, ist der Wechsel zwischen Java / PHP absolut kein Problem.<br />
<script src="http://gist.github.com/585518.js"> </script></p>
 <p><a href="http://daraff.ch/?flattrss_redirect&amp;id=1396&amp;md5=a951e547fd8f76ce10ba06ae01cb1950" title="Flattr" target="_blank"><img src="http://daraff.ch/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://daraff.ch/2010/09/php-java-javascript/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		<atom:link rel="payment" href="http://daraff.ch/?flattrss_redirect&amp;id=1396&amp;md5=a951e547fd8f76ce10ba06ae01cb1950" type="text/html" />
	</item>
		<item>
		<title>FizzBuzz Kata mit Javascript &#8211; Erkenntnisse</title>
		<link>http://daraff.ch/2010/08/fizzbuzz-kata-mit-javascript-erkenntnisse/</link>
		<comments>http://daraff.ch/2010/08/fizzbuzz-kata-mit-javascript-erkenntnisse/#comments</comments>
		<pubDate>Mon, 09 Aug 2010 05:00:15 +0000</pubDate>
		<dc:creator>DaRaFF</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Kata]]></category>
		<category><![CDATA[bdd]]></category>
		<category><![CDATA[behaviour driven development]]></category>
		<category><![CDATA[Code Kata]]></category>

		<guid isPermaLink="false">http://daraff.ch/?p=1319</guid>
		<description><![CDATA[Nachdem ich am Samstag voller Stolz meine FizzBuzz Speed Kata veröffentlich habe, möchte ich die daraus gewonnen Erkenntnisse natürlich mit euch teilen. Nach der Aufnahme des Videos fühlte ich mich gut und verzierte das Video noch mit ein paar Kommentaren. &#8230; <a href="http://daraff.ch/2010/08/fizzbuzz-kata-mit-javascript-erkenntnisse/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Nachdem ich am Samstag voller Stolz meine <a href="http://daraff.ch/2010/08/fizzbuzz-kata-mit-javascript/">FizzBuzz Speed Kata</a> veröffentlich habe, möchte ich die daraus gewonnen Erkenntnisse natürlich mit euch teilen. Nach der Aufnahme des Videos fühlte ich mich gut und verzierte das Video noch mit ein paar Kommentaren. Schnell auf youtube veröffentlicht (das ganze war ja noch im 15 Minuten Limit) und ab nach nach Kaltbrunn &#8211; Hockey und so&#8230; Nachdem ich wieder zu Hause war, fielen mir und auch durch die Hilfe von Feedbacks doch einige Schwächen bei meiner Kata auf. Dies scheint aber gut zu sein, um etwas über TDD/BDD lernen zu können. Diese Methode hat nämlich nicht nur Vorteile.</p>
<p><strong>Vorteile/Chancen</strong></p>
<ul>
<li>Es ist wirklich cool mit Behaviour Driven Development zu coden (bis jetzt habe ich ja nur TDD gemacht). Insgesamt fühle ich mich mit dem Syntax wohler und habe das Gefühl, die Anforderungen besser formulieren zu können. Ich habe BDD mit Specifications umgesetzt (es gibt ja auch die Variante mit Stories). Welche der 2 Notationen nun besser ist, kann ich momentan noch nicht sagen.</li>
<li>BDD macht Spass.</li>
<li>Alle Vorteile, die man mit TDD hat, hat man auch bei BDD &#8211; man hört ja auch immer wieder, dass BDD das verbesserte TDD ist.</li>
<li>Code Katas sind definitiv lehrreich. Man kann mit den Übungen seine Fähigkeiten verbessern. Wenn man eine Kata gelöst hat, kann man sie nochmals lösen, einfach mit einem anderen Fokus (z.B. Speed, BDD üben, Code möglichst kurz, Code ohne IDE schreiben usw.)</li>
</ul>
<p><strong>Gefahren/Stolpersteine</strong></p>
<ul>
<li>Speed tut dem Hirn nicht gut &#8211; ich habe Fehler gemacht, die normalerweise nicht passieren. Diese habe ich im Video nachdokumentiert.</li>
<li>Bei BDD/TDD verlässt man sich teilweise zu fest auf das rot/grün. Wenn es grün ist, ist alles gut!!! (Das es nicht so sein muss, sieht man ja im Video)</li>
<li>BDD/TDD ersetzt nicht die Planungsphase. Es macht Sinn, zuerst die Architektur zu planen, bevor man mit coden beginnt (in einem so einfachen Beispiel wie FizzBuzz können z.B. einfach die &#8220;it&#8221; Blöcke, sprich die Requirements vorformuliert werden)</li>
</ul>
 <p><a href="http://daraff.ch/?flattrss_redirect&amp;id=1319&amp;md5=0369b2802486a624fd8b6eefe155da43" title="Flattr" target="_blank"><img src="http://daraff.ch/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://daraff.ch/2010/08/fizzbuzz-kata-mit-javascript-erkenntnisse/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<atom:link rel="payment" href="http://daraff.ch/?flattrss_redirect&amp;id=1319&amp;md5=0369b2802486a624fd8b6eefe155da43" type="text/html" />
	</item>
		<item>
		<title>FizzBuzz Kata mit Javascript</title>
		<link>http://daraff.ch/2010/08/fizzbuzz-kata-mit-javascript/</link>
		<comments>http://daraff.ch/2010/08/fizzbuzz-kata-mit-javascript/#comments</comments>
		<pubDate>Sat, 07 Aug 2010 05:20:11 +0000</pubDate>
		<dc:creator>DaRaFF</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Kata]]></category>
		<category><![CDATA[bdd]]></category>
		<category><![CDATA[behaviour driven development]]></category>
		<category><![CDATA[Code Kata]]></category>
		<category><![CDATA[test driven development]]></category>

		<guid isPermaLink="false">http://daraff.ch/?p=1309</guid>
		<description><![CDATA[So, heute geht es wieder mal ans Eingemachte. In letzter Zeit merke ich immer wieder, dass mir Übung ziemlich gut tut Darum habe ich die allseits beliebte FizzBuzz Kata in Javascript mit dem Jasmine BDD Framework umgesetzt. Wer die Regeln &#8230; <a href="http://daraff.ch/2010/08/fizzbuzz-kata-mit-javascript/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So, heute geht es wieder mal ans Eingemachte. In letzter Zeit merke ich immer wieder, dass mir Übung ziemlich gut tut <img src='http://daraff.ch/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Darum habe ich die allseits beliebte FizzBuzz Kata in Javascript mit dem <a href="http://pivotal.github.com/jasmine/" target="_blank">Jasmine BDD Framework</a> umgesetzt. Wer die Regeln von FizzBuzz nicht kennt, kann sie <a href="http://codingdojo.org/cgi-bin/wiki.pl?KataFizzBuzz" target="_blank">hier</a> nachlesen.</p>
<p>Meine Ziele waren folgende:</p>
<ul>
<li>Javascript Syntax intuitiver niederschreiben können</li>
<li>Testgetrieben entwickeln</li>
<li>Das ganze sollte auch noch ein annehmbares Tempo haben</li>
<li>Netbeans Shortcuts anwenden (Maus nicht verwenden)</li>
</ul>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/eqDfhdYK_wk&amp;hl=de_DE&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="385" src="http://www.youtube.com/v/eqDfhdYK_wk&amp;hl=de_DE&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
 <p><a href="http://daraff.ch/?flattrss_redirect&amp;id=1309&amp;md5=2bbe7c685f1f78932f6cfcdbf6b42c82" title="Flattr" target="_blank"><img src="http://daraff.ch/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://daraff.ch/2010/08/fizzbuzz-kata-mit-javascript/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		<atom:link rel="payment" href="http://daraff.ch/?flattrss_redirect&amp;id=1309&amp;md5=2bbe7c685f1f78932f6cfcdbf6b42c82" type="text/html" />
	</item>
		<item>
		<title>Javascript lernen &#124; Teil 4 &#124; Alles ist ein Objekt</title>
		<link>http://daraff.ch/2010/08/javascript-lernen-teil-4-alles-ist-eine-funktion/</link>
		<comments>http://daraff.ch/2010/08/javascript-lernen-teil-4-alles-ist-eine-funktion/#comments</comments>
		<pubDate>Thu, 05 Aug 2010 05:00:56 +0000</pubDate>
		<dc:creator>DaRaFF</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://daraff.ch/?p=1204</guid>
		<description><![CDATA[Natürlich stimmt die Aussage, alles ist ein Objekt nicht ganz, es gibt schon verschiedene Typen (primitive Datentype wie integer, string und auch Funktionen und Objekte), aber man kann jede deklarierte Variable aufrufen, wie wenn sie eine Funktion oder ein Objekt &#8230; <a href="http://daraff.ch/2010/08/javascript-lernen-teil-4-alles-ist-eine-funktion/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Natürlich stimmt die Aussage, alles ist ein Objekt nicht ganz, es gibt schon verschiedene Typen (primitive Datentype wie integer, string und auch Funktionen und Objekte), aber man kann jede deklarierte Variable aufrufen, wie wenn sie eine Funktion oder ein Objekt wäre. Dies hat mich am Anfang ziemlich verwirrt und darum möchte ich mit ein paar Beispielen aufzeigen, wie die verschiedenen Datentypen auf verschiedene Aufrufe reagieren.</p>
<p>Als erstes setzen wir eine Ausgangslage auf:</p>
<pre class="brush:js">function TheGreat() {}

TheGreat.imGreater = function () {
    return "imGreater";
}

TheGreat.imAlsoGreater = function () {
    this.a = 11;
    this.b = 12;
    this.c = function(){return true}
    return "imAlsoGreater";
}
TheGreat.imTheGreatest = {
    d: 11,
    e: 12,
    f: function(){return true}
}</pre>
<p><strong>Beispiel 1 &#8211; imGreater</strong></p>
<pre class="brush:js">//type object - an empty object
var imGreaterObject = new TheGreat.imGreater;
console.log(imGreaterObject);

//type function
var imGreaterFunction = TheGreat.imGreater;
console.log(imGreaterFunction);

//type string - "imGreater"
var imGreaterFunctionExecuted = TheGreat.imGreater();
console.log(imGreaterFunctionExecuted);</pre>
<p>Fall 1 &#8211; Erzeugen Objekt: Es wird ein leeres Objekt erzeugt, return wird ignoriert.<br />
Fall 2 &#8211; Zuweisen Funktion: In der Variable imGreater ist eine Funktion gespeichert. Darum wird bei Fall 2 einfach der Inhalt der Variable, in diesem Falle also die Funktion der neuen Variable imGreaterFunction zugewiesen.<br />
Fall 3 &#8211; Im letzten Fall wird imGreater ausgeführt und dem Ergebnis zugewiesen. Dies kann mit () bei der Zuweisung erreicht werden. So kann ich die Funktion, wie sonst auch, aufrufen. Es ist also imGreaterFunctionExecuted der String imGreater zugewiesen worden.</p>
<p><strong>Beispiel 2 imAlsoGreater</strong></p>
<pre class="brush:js">//type object - with members a,b,c - return is irrelevant
var imAlsoGreaterObject = new TheGreat.imAlsoGreater;
console.log(imAlsoGreaterObject);

//type function
var imAlsoGreaterFunction = TheGreat.imAlsoGreater;
console.log(imAlsoGreaterFunction);

//type string - "imAlsoGreater"
var imAlsoGreaterFuctionExecuted = TheGreat.imAlsoGreater();
console.log(imAlsoGreaterFuctionExecuted);</pre>
<p>Eigentlich wieder dasselbe wie in Beispiel 1. Der einzige Unterschied ist, dass in Fall 1 das Objekt jetzt nicht mehr leer ist, sondern Membervariablen und -Funktionen enthält.</p>
<p><strong>Beispiel 3 &#8211; imTheGreatest</strong></p>
<pre class="brush:js">//TheGreat.imTheGreatest is an object literal and therefore always an instanced object

//error - an object can not be reinstanced
//var imTheGreatestObject = new TheGreat.imTheGreatest;

//type object - with members d,e,f
var imTheGreatest = TheGreat.imTheGreatest;
console.log(imTheGreatest);

//error - an object can not executed as a function
//var imTheGreatestFunctionExecuted = TheGreat.imTheGreatest()</pre>
<p>Das letzte Beispiel verwendet ein object literal, also ein bereits instanziertes Objekt.</p>
<p>Fall 1 &#8211; Erzeugen Objekt: Javascript erzeugt hier einen Fehler, weil das Objekt ja schon bereits instanziert ist. Diesen Fall kann man nicht anwenden.<br />
Fall 2 &#8211; Zuweisen Objekt: Da in der Variable TheGreat.imTheGreatest ein instanziertes Objekt abgelegt ist, wird bei einer Zuweisung dementsprechend auch ein Objekt der neuen Variablen imTheGreatest abgelegt.<br />
Fall 3 &#8211; Hier wird versucht, ein Objekt als Funktion auszuführen. Dies ist nicht möglich und es wird ein Fehler ausgelöst.</p>
<p><strong>Fazit</strong></p>
<p>Ich hoffe euch damit gezeigt zu haben, dass je nachdem wie man eine Variable aufruft, sich verschiedene Ergebnisse daraus ergeben. Dies muss man bei der Arbeit mit Javascript zuerst verstehen.</p>
<p>So, jetzt bin ich vorerst ausgeschossen. Bin ja eigentlich selber noch ziemlich neu in Javascript. Gibt es Themen, die euch noch interessieren würden? Ich bin gerade noch eine Javascript Fizzbuzz Kata am vorbereiten, welche ich euch bei Gelegenheit präsentieren kann.</p>
 <p><a href="http://daraff.ch/?flattrss_redirect&amp;id=1204&amp;md5=599072d8b0fa952cad1244eb2095026c" title="Flattr" target="_blank"><img src="http://daraff.ch/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://daraff.ch/2010/08/javascript-lernen-teil-4-alles-ist-eine-funktion/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<atom:link rel="payment" href="http://daraff.ch/?flattrss_redirect&amp;id=1204&amp;md5=599072d8b0fa952cad1244eb2095026c" type="text/html" />

		<series:name><![CDATA[Javascript lernen]]></series:name>
	</item>
		<item>
		<title>Javascript lernen &#124; Teil 3 &#124; Object literals + Namespaces</title>
		<link>http://daraff.ch/2010/08/javascript-lernen-teil-3-object-literals-namespaces/</link>
		<comments>http://daraff.ch/2010/08/javascript-lernen-teil-3-object-literals-namespaces/#comments</comments>
		<pubDate>Wed, 04 Aug 2010 05:00:45 +0000</pubDate>
		<dc:creator>DaRaFF</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[namespaces]]></category>
		<category><![CDATA[object literal]]></category>

		<guid isPermaLink="false">http://daraff.ch/?p=1199</guid>
		<description><![CDATA[Im heutigen Teil 3 von meiner Serie Javascript lernen befasse ich mich mit dem sehr coolen Konstrukt Object literals und wie man das für Namespaces verwenden kann. Object literals Als erstes ein Sourcecode Beispiel eines Code literals: var meinObjekt = &#8230; <a href="http://daraff.ch/2010/08/javascript-lernen-teil-3-object-literals-namespaces/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Im heutigen Teil 3 von meiner Serie Javascript lernen befasse ich mich mit dem sehr coolen Konstrukt Object literals und wie man das für Namespaces verwenden kann.</p>
<p><strong>Object literals</strong></p>
<p>Als erstes ein Sourcecode Beispiel eines Code literals:</p>
<pre class="brush:js">var meinObjekt = {
    a: 3,
    b: 4,
    c: function(){
        return meinObjekt.a*meinObjekt.b;
    }
}</pre>
<p>Wie man hier schön sieht, unterscheidet sich das Object literal gegenüber einer normalen Funktion, dass es nicht eine Variable oder eine Funktion einer Variablen zuweist, sondern dass es direkt mittels { } derklariert wird.</p>
<p>Mit { } wird direkt ein Objekt meinObjekt erzeugt und es können wieder beliebige &#8220;Klassenmembers&#8221; erzeugt werden (hier Variable a, b und Funktion c() ).</p>
<p>Das spezielle an Object literals ist, dass alle Members public sind und wie in Javascript üblich, können problemlos zur Laufzeit noch neue Members hinzugefügt werden.</p>
<pre class="brush:js">meinObjekt.d = function(){
    return "all right";
}</pre>
<p>Mit dem obigen Stück Code habe ich ganz einfach zur Laufzeit der Membervariable d vom Objekt meinObjekt eine neue Funktion zugewiesen.</p>
<p>Naja, nachdem ich Code literals geschnallt habe, wurde mir jQuery doch schon um einiges Verständlicher <img src='http://daraff.ch/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><strong>Namespaces</strong></p>
<pre class="brush:js">var namespace = {
    caching: {},
    orm: {
        mapping: {},
        save: {},
        load: function(){ return "Hello World" }
    }
}</pre>
<p>Will man sich nun eigene Pakete (Namespaces) generieren und nicht den globalen Namespace mit Variablen, Funktionen und Objekten verseuchen (was ja in Javascript gerne gemacht wird), kann man sich die Object literals zu nutze machen und sich so beliebig tief verschachtelte Namespaces erzeugen. Im Beispiel habe ich nun ein Paket namespace mit den Subpackages caching und orm erzeugt. orm wiederum hat 3 weitere Subpackages&#8230;</p>
<p>Ich kann jetzt in meinem definierten namespace z.B. die Funktion load aufrufen. Unten seht ihr 2 Aufrufmöglichkeiten, wisst ihr was der Unterschied ist? Falls nein, wird der nächste Artikel sicher interessant, da werde ich auf das Thema Funktions- bzw. Objektaufrufe eingehen und genauer beschreiben, was mich am Anfang verunsichert hat.</p>
<pre class="brush:js">namespace.orm.load;
namespace.orm.mapping.load();</pre>
 <p><a href="http://daraff.ch/?flattrss_redirect&amp;id=1199&amp;md5=b4ea6a866423341bf1c4e787a1e408db" title="Flattr" target="_blank"><img src="http://daraff.ch/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://daraff.ch/2010/08/javascript-lernen-teil-3-object-literals-namespaces/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<atom:link rel="payment" href="http://daraff.ch/?flattrss_redirect&amp;id=1199&amp;md5=b4ea6a866423341bf1c4e787a1e408db" type="text/html" />

		<series:name><![CDATA[Javascript lernen]]></series:name>
	</item>
	</channel>
</rss>

