/* Create a new object */ function testObject() { /* Private variables can only be called by functions inside this object */ var privatePropertyValue = 'Private property:1'; /* Public variables can be directly called through objectname */ this.publicPropertyValue = 'Public property:1'; this.objectName = 'testObject'; /* Private functions can only be called by functions inside this object Private functions cannot directly access the this method of the object */ function privateFunctionSetVariable() { /* Method this is not possible: e.g. this.publicPropertyValue = 'Private function'; does not refer to the object */ alert("This will fail:" + this.objectName); privatePropertyValue = 'Private property:2'; } function privateFunctionSetGlobalVariable(c) { alert("This will succeed:" + c.objectName); c.publicPropertyValue = 'Public property:3'; } /* Public functions can be directly called through objectname */ this.publicFunctionSetVariable = function () { this.publicPropertyValue = 'Public property:2'; }; this.publicCallPrivateFunction = function () { privateFunctionSetVariable(); }; this.publicCallPrivateFunctionGlobal = function () { privateFunctionSetGlobalVariable(this); }; this.publicAlert = function (t,v) { if(t=='private') alert(eval(v)); else alert(eval('this.'+ v)); }; } var createObject = new testObject(); createObject.publicAlert('public','publicPropertyValue'); createObject.publicFunctionSetVariable(); createObject.publicAlert('public','publicPropertyValue'); createObject.publicCallPrivateFunctionGlobal(); createObject.publicAlert('public','publicPropertyValue'); createObject.publicAlert('private','privatePropertyValue'); createObject.publicCallPrivateFunction(); createObject.publicAlert('private','privatePropertyValue');
css
Friday, January 6, 2012
Javascript objects
I always wanted to create a simple example on how you can create objects in javascript. The example also contains private and public variables and functions.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment