Псевдонимы Javascript
-
20-08-2019 - |
Вопрос
моя цель - создать своего рода "библиотеку Javascript", если это можно так назвать.Я намереваюсь использовать его для простого манипулирования страницами во время просмотра веб-страниц, динамически загружая его как скрипт greasemonkey.Идея состоит в том , чтобы иметь "win
" получить отображение на window
, "doc
" -> document
, "win.loc
" -> win.location
, и несколько других удобных сопоставлений, но вы поняли идею.Не могли бы вы просто привести мне несколько примеров, из которых я мог бы понять синтаксис, а остальное я экстраполирую?Большое спасибо.
Решение
Просто назначьте переменные следующим образом:
var win = window;
var doc = document;
Вы не можете назначить win.loc
без изменения window
однако возражайте в данном случае.Кроме того, объект window является особенным, потому что после назначения win
, вы сможете получить это с win.win
или win.win.win
и так далее (window
является глобальным объектом.)
В любом случае, вы может все еще назначаю loc
к тому window
объект:
win.loc = window.location;
// Can now be referenced as:
loc; // (window is the global object)
win.loc;
win.location;
window.location;
Теперь вот как сделать то, о чем вы просите.Скорее всего , вы не должен сделай это.Обычно фреймворки определены так, чтобы использовать только одну глобальную переменную с подходящим именем:
var Blixt = (function () {
var localVariable = 123;
return {
loc: window.location,
myFunc: function () {
alert(localVariable);
}
};
})();
Однако все это довольно сложный материал, если вы не знакомы с JavaScript, так что это не самый лучший проект для начала, если вы новичок в JavaScript.
Другие советы
** ПРИМЕЧАНИЕ: ** На самом деле это просьба разъяснить приведенный выше ответ Бликста, который не уместился бы в один комментарий.
Хорошо, спасибо - это довольно хороший ответ.Я просто хотел бы внести в это некоторые уточнения:
Если я определю псевдонимы, используя синтаксис, который вы привели выше,
win.loc
будет вести себя именно так то же самое , чтоwindow.location
без каких-либо исключений?(Просто удостоверяюсь)Я следил за большей частью этого, но за той частью, в которой
Blixt
функция, которую я не понял.Каково ожидаемое поведение / результат определения этой функции?Я ам своего рода новичок в JS, но почему это не очень хорошая идея?Какие негативные последствия это могло бы иметь?Я просто хочу делать такие вещи, как
C-l javascript:win.loc=doc.ref<ENTER>
для вкладки, которая была открыта щелчком CTRL по ссылке на другой вкладке, ничего слишком сложного.Говоря об этом, и у меня есть ощущение, что это может отличаться от браузера к браузеру, но есть ли какой-либо возможный способ для меня определить
js:
Схему URI и сопоставьте ее сjavascript:
один?Спасибо за отличный ответ.