Создание и получение вложенных объектов на jQuery

Создание и использование вложенных объектов с помощью указания в виде строки чрезвычайно полезно при работе с динамическими структурами. Не только потому, что отпадает необходимость ручной проверки объекта/свойства, чтобы избежать сообщения об ошибке "{x} is not defined". Если вы создадите свой метод правильно, то сможете устанавливать пустой объект в заданном месте (или пространстве имен) так, что другой пользователь сможет вызвать его. Вот как можно добавить описанный функционал к объекту jQuery.

 

Так как философия jQuery заключается в использовании одного и того же метода для получения и установки, мы будем следовать ей при создании нашего метода obj:

(function() {

  // Метод для установки и получения объектов, которые могут существовать или нет
  var objectifier = function(splits, create, context) {
    var result = context || window;
    for(var i = 0, s; result && (s = splits[i]); i++) {
      result = (s in result ? result[s] : (create ? result[s] = {} : undefined));
    }
    return result;
  };

  // Получаем или устанавливаем объект
  jQuery.obj = function(name, value, create, context) {
    // Установка
    if(value != undefined) {
      var splits = name.split("."), s = splits.pop(), result = objectifier(splits, true, context);
      return result && s ? (result[s] = value) : undefined;
    }
    // Получение
    else {
      return objectifier(name.split("."), create, context);
    }
  };

})();

Функция objectifier управляет как получением, так и установкой, в том числе и в заданном контексте (существующий объект). Вот несколько примеров использования метода jQuery.obj:

// Проверяем существование
var moduleNameExists = jQuery.obj("mynamespace.widget.moduleName"); // undefined

// Создаем объект
jQuery.obj("mynamespace.widget.moduleName", { prop: 1 }); // mynamespace.widget.moduleName.prop вернет 1

// Создаем объект на существующем объекте
jQuery.obj("subnamespace.subModuleName", { someProp: 8 }, true, mynamespace.widget);
  // mynamespace.widget.subnamespace.subModuleName = { someProp: 8 }

Доступ к произвольным объектам с помощью строки позволяет избежать плясок с проверками существования объектов и свойств. Метод objectifier можно добавить к любой библиотеке.


Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/WoMfCeGKae0/lessons.php

Читать комменты и комментировать

Добавить комментарий / отзыв



Защитный код
Обновить

Создание и получение вложенных объектов на jQuery | | 2012-09-06 10:01:41 | | Статьи Web-мастеру | | Создание и использование вложенных объектов с помощью указания в виде строки чрезвычайно полезно при работе с динамическими структурами. Не только потому, что отпадает необходимость ручной проверки | РэдЛайн, создание сайта, заказать сайт, разработка сайтов, реклама в Интернете, продвижение, маркетинговые исследования, дизайн студия, веб дизайн, раскрутка сайта, создать сайт компании, сделать сайт, создание сайтов, изготовление сайта, обслуживание сайтов, изготовление сайтов, заказать интернет сайт, создать сайт, изготовить сайт, разработка сайта, web студия, создание веб сайта, поддержка сайта, сайт на заказ, сопровождение сайта, дизайн сайта, сайт под ключ, заказ сайта, реклама сайта, хостинг, регистрация доменов, хабаровск, краснодар, москва, комсомольск |
 
Поделиться с друзьями: