if (!A) var A = {};
if (!A.B) A.B = {}; // careful here, var is not present here, only in the first one
A.B.Test = function () {
// ctor
alert('constructor');
var _private_var = 'private var';
private_method = function () {
alert('private method');
}
alert('or can even write ctor anywhere');
return {
public_property: "public_property",
public_method: function () {
alert("public_method");
}
};
};
A.B.Test.public_static_property = 'public static property';
A.B.Test.public_static_method = function () {
alert('public static method');
};
var t = A.B.Test();
alert(t.public_property);
t.public_method();
if (typeof (t._private_var) != 'undefined')
alert('can access private var, test failed');
else
alert('cannot access private var, test passed');
try {
t.private_method();
alert('can access private method, test failed');
} catch (e) {
alert('cannot access private method, test passed');
}
alert(A.B.Test.public_static_property);
A.B.Test.public_static_method();
You can find more information on www.prabir.me