Category Archives: javascript

Javascript = how get in event your this

var Controller = Spine.Class.create({
init: function() {
$(‘#destroy’).click(this.destroy);
},
destroy: function() {
// this = event;
}
});

var Controller = Spine.Class.create({
init: function() {
$(‘#destroy’).click(this.proxy(this.destroy));
},
destroy: function() {
// this = init;
}
});

Advertisements

Generate GUID on JS

Math.guid = function() {
return ‘xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx’.replace(/[xy]/g, function(c) {
var r = Math.random()*16|0, v = c == ‘x’ ? r : (r&0x3|0x8);
return v.toString(16)
}).toUpperCase();
};

Паттерн Стратегия на Javascript

От переводчика:
Я собрался изучить новый для меня паттерн Стратегия, но не нашёл толкового русского описания его реализации на javascript. Статья на wiki пугает своей сложностью, а наглядность примера оставляет желать лучшего. По этому и взялся за перевод этой статьи, одновременно разбираясь, что же из себя представляет данный паттерн.
Спойлеры и текст, выделенный серым, являются моими комментариями.

Далее мы разберём примеры того, как я использую СТРАТЕГИЮ в Javascript, и как он используется реальной библиотекой, для разбиения её на небольшие части.

Continue reading

Понимание ООП в JavaScript [Часть 1]

— Прототипное наследование — это прекрасно
JavaScript — это объектно-ориентированный (ОО) язык, уходящий корнями в язык Self, несмотря на то, что внешне он выглядит как Java. Это обстоятельство делает язык действительно мощным благодаря некоторым приятным особенностям.

Одна из таких особенностей — это реализация прототипного наследования. Этот простой концепт является гибким и мощным. Он позволяет сделать наследование и поведение сущностями первого класса, также как и функции являются объектами первого класса в функциональных языках (включая JavaScript).

К счастью, в ECMAScript 5 появилось множество вещей, которые позволили поставить язык на правильный путь (некоторые из них раскрыты в этой статье). Также будет рассказано о недостатках дизайна JavaScript и будет произведено небольшое сравнение с классической моделью прототипного ОО (включая его достоинства и недостатки).

Continue reading

object.HasOwnProperty

for (key in obj) {
if(“a” in a.prototype)
}

Boolean()

var len = 6;
if(Boolean(len)) …

Boolean(len) => works faster

len:
– alocate if need len
– typeof
– Boolean()

Boolean(len)

array.forEach

var items = [1, 2, 3, 4, 5, 6, 7, 8]

for(var item, i = 0; (item = items[i++])){
console.log(item)
}

ForEach with filter

var items = [1, 2, 3, 4, 5, 6, 7, 8]

for(var item, i = 0; (item = items[i++]) && (item%2 > 0)){
console.log(item)
}

 

UnderscoreJS: _.each()

jQuery: $.each(data. handler, context)