var $ = (function () {
var keys = { a: 1, b: 2, c: "Bob" },
external_func = function (key, val) {
if (val === undefined) { return keys[key]; }
keys[key] = val;
extend(external_func, { key : val });
};
function extend (obj, keys) {
var key;
for (key in keys) {
if (keys.hasOwnProperty(key)) {
obj[key] = keys[key];
}
}
}
extend(external_func, keys);
external_func.setKey = function (key, val) { keys[key] = val; this[key] = val; };
return external_func;
}());
jQuery намного больше, чем просто это, но это может быть примером того, как вы могли бы построить систему, которая сохраняет ключи и значения, которую вы можете прочитать либо как вызов функции, либо как свойство.
Например, если ключи содержали разбивку всех запросов в URL или содержали все файлы cookie для страницы, вы могли бы сделать что-то вроде:
Cookie («залогинен»);Cookie [ "вошедшего в"];Cookie.username;
Query ("имя_страницы");Запрос [ "название_страница"];Query.page_name;
Вы просто должны быть уверены, что рассматриваете его как доступный только для чтения, если только вы не используете функцию, не используете метод setCookie
, присоединенный к функции, или вы нацеливаетесь толькобраузеры, которые поддерживают собственные методы получения и установки.