Используя приведенную ниже конструкцию, вы можете иметь приватные переменные, публичные и приватные функции.Итак, почему есть все различные способы создания пространства имен?
Является ли пространство имен радикально отличным от функции со связанным поведением и областью действия?
Я вижу смысл не загрязнять глобальное пространство имен, например, объект окна в браузерах с множеством функций, которые можно создать, но это также может быть достигнуто с помощью приведенного ниже ..
Кажется, япропускаю фундаментальную точку ..
// Constructor for customObject
function customObject(aArg, bArg, cArg)
{
// Instance variables are defined by this
this.a = aArg;
this.b = bArg;
this.c = cArg;
}
// private instance function
customObject.prototype.instanceFunctionAddAll = function()
{
return (this.a + this.b + this.c);
}
/*
Create a "static" function for customObject.
This can be called like so : customObject.staticFunction
*/
customObject.staticFunction = function()
{
console.log("Called a static function");
}
// Test customObject
var test = new customObject(10, 20, 30);
var retVal = test.instanceFunctionAddAll();
customObject.staticFunction();