Maxmaxmахimus,
А не лучше ли прототип объектом присвоить.
/**
* Переключатель.
* Имеет 2 состояния.
* Если включен, то возвращает хранимое значение,
* если выключен, то возвращает undefined.
* По умолчанию включен
*
* @param value - значение
* @constructor
*/
function Toggle ( value ) {
this._state = true;
this._value = value;
}
Toggle.prototype = {
on : function() {
this._state = true;
},
off : function () {
this._state = false;
},
toggle : function () {
this._state = !this._state;
},
state : function () {
return this._state;
},
value : function ( value ) {
if ( arguments.length < 0 ) {
this._value = value;
}
else if ( this._state ) {
return this._value;
}
}
}