|
Максимально избавляемся от влияния на наш код внешних скриптов и окружений. Ну и сами сторонним скриптам не мешаем.
— Неймспейсы и префиксы!
Неймспейсы
// Проверяем на наличие неймспейса. Если его нет, то создаём.
if (Begun === undefined || !Begun){
var Begun = {};
}
Begun.extend = function(destination, source){
for (var property in source){
destination[property] = source[property];
}
return destination;
};
Begun.$ = function(id){
return document.getElementById(id);
};
Begun.Autocontext = new function(){
var _this = this;
…
}
Внутри методов (включая анонимные функции) можно для удобства и краткости кода применять сокращённую запись длинного имени:
(function(){
var ac = Begun.Autocontext;
ac.Customization.init();
ac.setOptions({max_banners_count: 50, max_blocks_count: 10, scroll_banners_coef: 2});
ac.printDefaultStyle();
…
})();
Префиксы глобальных переменных
HTML-код:
<script type="text/javascript">
var begun_auto_pad = 106449301;
var begun_total_banners = 10;
</script>
<script src="http://autocontext.begun.ru/autocontext2.js" type="text/javascript"></script>
…в коде autocontext2.js:
var first_block_banners_count = 0;
if (_this.isFirstBlockWithBanners()){
first_block_banners_count = _this.getActualBlockBannersCount(_this.Blocks[0]);
}
var total_banners = window.begun_total_banners || first_block_banners_count || _this.options.max_banners_count || 0;
NB: Вообще, использование неймспейсов и префиксов не даёт полной гарантии, что мы сможем ограничить свой код от внешнего влияния. Если, например, какой-то сторонний скрипт переопределит используемый нашим кодом встроенный метод escape(), то ничего с этим не поделаешь.
Самое популярное на сайтеОбъявления
← Вернуться в раздел «JavaScript» |