Home > javascript, программирование > Подсказка: private-переменные в Javascript

Подсказка: private-переменные в Javascript

Это перевод статьи Quick Tip: Private Variables in JavaScript.

Подсказка: private-переменные в Javascript

Из-за зависимости JavaScript от глобальных переменных, можно легко забыть, что создание часных переменных (private variables) может быть реализовано так же просто, как и замыкания. За несколько минут, я продемонстрирую две основные техники, предоставляющие часные переменные и медоды в ваших проектах.

Первый метод заключается в том, чтобы создать переменную, которая равна возвращаемому значению переменной. Таким образом, мы можем контролировать какие переменные и методы доступны для проекта. Благодаря замыканиям, мы всё равно будем иметь доступ к этим часным переменным, даже после того, как обьект был возвращён с нашего Singelton’а.

var MyObj = function() {

// Private переменные
  var priv1 = 'private 1',
      priv2 = 'private 2';

// Только методы и свойства в пределах этого  объекта будут доступны.
  return {
    doSomething : function() {
      // alert(priv1); // private 1
      alert(this.someProp); // someValue
    },

    someProp : 'someValue'
  }

}(); // эта функция выполняется, когда обьект инициализируется

  MyObj.doSomething();

Демонстрация

От себя добавлю, что в скринкасте описывается ещё один метод, с помощью конструктора:


function myConctructor(){
  var private1='sss'; // приватная переменная
  this.public1 = 'seee'; // public переменная
}

Думаю, тут понятно всё.

  1. March 15th, 2010 at 17:12 | #1

    Ммм…Я только сейчас начал понимать, как важно иметь те самые соцзакладки, вот если бы они у Вас тут отражались, я бы Ваш сайт добавил в свои. А так уже целый полигон в “Избранном”, и уже сложно что-то найти. С одной стороны не хочется терять связь с сайтом, но всякие федбернеры и рсс для меня это сложно. Буду краток, прикрутите возможность добавления блога в социалки. Успехов. Еще последнее – добавьте себя Яндекс Каталог, сегодня смотрел там одна лабуда, надо это исправлять новыми блогами.

  1. No trackbacks yet.