Kleine Javascript frage

08/31/2013 17:46 ωօղძεɾlმղძ#1
Hallo, ich möchte eine Funktions klasse schreiben das läuft auch ganz gut so

Code:
var App = function() {

	return {

		Init: function() {
			//Do Something
		},

		Load: function() {
			//Do Something
		}

	};

}();
Kann ich also mit App.Init(); aufrufen nun wenn ich aber zb
Variablen übergeben möchte also mit App("#divname").Init(); Spuckt er mir eine fehlermeldung aus:

Code:
var App = function(divname) {

	return {

		Init: function() {
			//Do Something
		},

		Load: function() {
			//Do Something
		}

	};

}();

Kann mir jemand helfen wie ich so etwas zusammen bekomme: App("#divname").Init();
08/31/2013 18:06 Synatex#2
Wo ist die Fehlermeldung :p?
08/31/2013 18:15 ωօղძεɾlმղძ#3
Quote:
Originally Posted by Synatex View Post
Wo ist die Fehlermeldung :p?
> App("#divname").Init();

> TypeError: object is not a function
08/31/2013 18:41 Tasiro#4
App ist keine Funktion.
Du kannst es zu einer Funktion machen und dann ein Objekt zurückgeben lassen, wie jQuery.
Ein kleines Beispiel:
Code:
var App = function () {
	function app (name) {
		this.name = name;
	}
	app.prototype.prefixName = function (prefix) {
		return prefix + this.name;
	};

	return function App (name) {
		return new app (name);
	};
} ();

// new vor App ist optional
var app = App ("def");
app.prefixName ("abc");

App ("def").prefixName ("abc");
08/31/2013 18:42 MrPuschel#5
Ich glaube du möchtest dieses Verhalten haben:

HTML Code:
var app = function(message) {

	return {

		foo: function() {
            alert(message);
		},

		bar: function() {
            alert(message);
		}

	};

};

app("foo").foo();
app("bar").bar();
Alternativ:
HTML Code:
var app = {
        'foo': function(message) {
            alert(message);
    },
        'bar': function(message) {
            alert(message);
    }
};

app.foo('foo');
app.bar('bar');
08/31/2013 18:52 ωօղძεɾlმղძ#6
#Danke sehr