Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!


regisrty => registry.var div = $("<div dir='{blockId:"+index+"}'/>");
// Лучше через второе свойство добавлять аттрибуты
var div = $("<div />", { dir: dir='{blockId:'+index+'}'});
$.each(regisrty.getOption('block').css, function(property, value) {
div.css(property, value);
}.bind(this));
// =>
div.css(regisrty.getOption('block').css);
div.css('float', 'left');
div.css('border', '1px solid #000');
div.css('width', regisrty.blockSize - 2);
div.css('height', regisrty.blockSize - 2);
// =>
div.css({
float : 'left',
border: '1px solid #000',
width : registry.blockSize - 2,
height: registry.blockSize - 2
})
if (0 == index) {
// =>
if (!index)
$(div).click(function() {
this.processEvent(div);
}.bind(this));
// =>
$(div).click(this.processEvent.bind(this, div));
this.processEvent так и проситься рефакторинга. Проглядывается копипаст шаблон:if (typeof stack[column][value] != 'undefined' && stack[column][value] == 0) {
stack[column][value] = stack[column][row];
stack[row] = 0;
}
typeof stack[column][row+1] != 'undefined' лучше пишите stack[column][row+1] != null. В вашем случае суть та же, а захламление кода меньше. Тем более реальная проверка на 'undefined' практически никогда не нужна.this.init = function() {
$.each(this.options.css, function(property, value) {
$('#' + this.options.id).css(property, value);
}.bind(this));
this.paint();
}
// =>
this.init = function() {
$('#' + this.options.id).css(this.options.css);
this.paint();
}
var finish = false;
while (!finish) {
r = Math.round(Math.random() * 15);
if ( !localStack[r] && 0 != localStack[r] ) {
localStack[r] = r;
finish = true;
}
}
// =>
while (true) {
r = Math.round(Math.random() * 15);
if ( !localStack[r] ) {
localStack[r] = r;
break;
}
}
getDiv() — плохое название. А если пятнашка станет spanом? getCell/getItem/getElement, что-то типа такого.addEvent — у всех целевых браузеров есть addEventListener. Аналогично с XHR и ActiveXObject.function randomNumber(m, n) {
return Math.floor( Math.random() * (n - m + 1) ) + m;
}
randomNumber(min, max)
// =>
Number.random(min, max)
document.getElementById('newGame')
// =>
atom.dom("#newGame")
Game.prototype._getNickname = function() {
var cookie = ' ' + document.cookie;
var search = ' nickname=';
var nickname = null;
var offset = 0;
var end = 0;
if (cookie.length > 0) {
offset = cookie.indexOf(search);
if (offset != -1) {
offset += search.length;
end = cookie.indexOf(";", offset)
if (end == -1) {
end = cookie.length;
}
nickname = cookie.substring(offset, end);
}
}
return (nickname);
}
// =>
Game.prototype._getNickname = function() {
return atom.cookie.get('nickname');
}
Canvas: пятнадцать минут на пятнашки