Skip to content

Instantly share code, notes, and snippets.

View medonomator's full-sized avatar
:octocat:
Focusing

Dima medonomator

:octocat:
Focusing
View GitHub Profile
@medonomator
medonomator / InterviewQuestions.js
Created November 19, 2017 10:22
InterviewQuestions
// Number 1
var funcs = [];
for (var i=0;i<10;i++) {
funcs.push(function() {
console.log(i);
});
}
funcs.forEach(function(func) {
@medonomator
medonomator / binding.js
Last active November 14, 2017 04:39
binding
const addChange = function (obj) {
obj.change = function (callback) {
if (callback) {
if ( !this._change ) this._change = [];
this._change.push(callback);
} else {
if ( !this._change ) return;
for (let i=0; i < this._change.length; i++) {
// apply callback to this object
this._change[i].apply(this);
@medonomator
medonomator / model.js
Created November 12, 2017 09:37
the inheritance model
const Model = {
inherited: function() {},
created: function() {},
prototype: {
init: function() {},
},
create: function() {
let object = Object.create(this);
@medonomator
medonomator / pubsub.js
Created November 12, 2017 07:45
PubSub Pattern
//events - a super-basic Javascript (publish subscribe) pattern
var events = {
events: {},
on: function (eventName, fn) {
this.events[eventName] = this.events[eventName] || [];
this.events[eventName].push(fn);
},
off: function(eventName, fn) {
if (this.events[eventName]) {
function factorial(n) {
factorial.cache = factorial.cache || [1]
return factorial.cache[n] || (factorial.cache[n] = n * factorial(n - 1))
}
@medonomator
medonomator / recomposeExample.js
Created July 24, 2017 10:51
recomposeExample
import { connect } from 'react-redux';
import compose from 'recompose/compose';
import withState from 'recompose/withState';
import withHandlers from 'recompose/withHandlers';
import lifecycle from 'recompose/lifecycle';
import { renderMonth, schoolyearsFilter, renderLessons } from './helpers';
export default compose(
'.source.js':
'then':
'prefix': '.then'
'body': """.then(response => console.log(response))
.catch(reject => console.log(reject))
"""
'comments':
'prefix': '/-'
'body': """// =========================================================================
// ${1}
@medonomator
medonomator / reduce.js
Created December 3, 2016 16:20
Originreduce
const array = [1,2,3,4,5]
const reduce = function(arr, callback) {
let array = arr.slice();
let result = null;
for(let i=0; i<array.length; i++) {
result = callback(result, arr[i], i, arr);
}
return result
}
@medonomator
medonomator / streame.js
Created November 19, 2016 17:03
stream
var Readable = require('stream').Readable,
stream = new Readable(),
data = ('Сайт рыбатекст поможет дизайнеру, верстальщику, вебмастеру сгенерировать несколько абзацев более менее осмысленного текста рыбы на русском языке, а начинающему оратору отточить навык публичных выступлений в домашних условиях. При создании генератора мы использовали небезызвестный универсальный код речей. Текст генерируется абзацами случайным образом от двух до десяти предложений в абзаце, что позволяет сделать текст более привлекательным и живым для визуально-слухового восприятия.').split(' ')
stream._read = function () {
if(data.length) {
setTimeout(function () {
stream.push(data.shift() + '');
}, 200);
} else {