SlideShare a Scribd company logo
made by Me
Matreshka.js
JavaScript Framework for Developers
<input type="text" class="my-input">
<script src="matreshka.min.js"></script>
<script>
var app = new Matreshka;
app.bindNode('x', '.my-input');
app.x = 'Two-way data binding in JS? O rly?';
</script>
Structure
● Class Matreshka (Core)
● Class Matreshka.Object (Model)
● Class Matreskka.Array (Collection)
Class Mathreska
Examples
// creating of the instance
var mk = new Matreshka; // or var mk = new MK;
// inheritance
var MyClass = Class({
'extends': Matreshka,
constructor: function () {
this.sayHello();
},
sayHello: function () {
alert("Hello World!");
}
});
// inheritance es6
class MyClass extends Matreshka {
constructor () {
this.sayHello();
}
sayHello () {
alert('Hello World!');
}
}
Class Mathreska
● isMK
● $sandbox
● sandbox
● on
● onDebounce
● once
● off
● trigger
● bindNode
● bindOptionalNode
● unbindNode
● boundAll
● $bound
● bound
● selectAll
● $
● select
● eq
● defineGetter
● defineSetter
● mediate
● linkProps
● get
● set
● remove
● define
● delay
● version
● isXDR
● defaultBinders
● extend
● Class
● $b
● useAs$
● noop
● each
● debounce
● lookForBinder
● randomString
● binders
Matreshka#on(names, callback, triggerOnInit=false,
context)
Examples
// simple
this.on('foo', function () {
alert('Custom Event is fired');
});
this.trigger('foo');
// Passing the context
this.on('foo', function () {
alert(this.a); // 5
}, {a: 5});
this.trigger('foo', 'Hello world');
// Fire the event after initialization
this.on('foo', function () {
alert('bar');
}, true);
Matreshka#trigger(names, arg)
Examples
this.on('foo bar', function (a, b, c) {
alert(a + b + c);
});
this.trigger('foo', 1, 2, 3); // 6
Matreshka#bindNode(key, node, binder, eventOptions)
Examples
this.bindNode('myKey', '.my-element', {
on: 'click',
getValue: function () { ...
},
setValue: function () { ...
},
initialize: function () { ...
}
});
Matreshka#bindNode(key, node, binder, eventOptions)
Examples
this.bindNode('myKey', '.my-checkbox', {
on: 'click',
getValue: function () {
return this.checked;
},
setValue: function (v) {
this.checked = !!v;
}
});
this.myKey = true;
Matreshka#bindNode(key, node, binder, eventOptions)
Examples
this.bindNode('myKey', '.my-slider', {
on: 'slide',
getValue: function () {
return $(this).slider('option', 'value');
},
setValue: function (v) {
$(this).slider('option', 'value', v);
},
initialize: function () {
$(this).slider({
min: 0,
max: 100
});
}
});
this.myKey = 42;
Matreshka#bindNode(key, node, binder, eventOptions)
Examples
this.bindNode('myKey', '.my-element', binder, {
assignDefaultValue: false
});
Matreshka#bindNode(keyElementPairs, binder,
eventOptions)
Examples
this.bindNode({
myKey1: '.custom-checkbox',
myKey2: 'textarea'
});
Matreshka#bindNode(setOfArguments, eventOptions)
Examples
this.bindNode([
[{
myKey1: '.my-element1',
myKey2: '.my-element2'
}],
[{
myKey3: '.my-element3',
myKey4: '.my-element4'
}, {
on: 'click',
getValue: function () { ... },
setValue: function () { ... }
}]
……..
]);
Matreshka#binders
Examples
MK.binders.myCoolBinder = function (var1, var2) {
return {
on: 'click',
getValue: function () { ...
},
setValue: function () { ...
},
initialize: function () { ...
}
};
};
this.bindNode('myKey', '.my-element', MK.binders.myCoolBinder('Hello', 'World'));
Matreshka#binders
The list of the predefined binders:
● Matreshka.binders.innerHTML
● Matreshka.binders.visibility
● Matreshka.binders.className
● Matreshka.binders.property
● Matreshka.binders.attribute
● Matreshka.binders.input
● Matreshka.binders.textarea
● Matreshka.binders.select
Matreshka.binders.innerHTML()
Examples
this.bindElement('myKey', '.my-element', MK.binders.innerHTML());
// the same as
this.bindElement('myKey', '.my-element', {
setValue: function (v) {
this.innerHTML = v;
}
});
Matreshka.binders.visibility(value=true)
Examples
this.bindElement('myKey', '.my-element', MK.binders.visibility(true));
// the same as
this.bindElement('myKey', '.my-element', {
setValue: function (v) {
this.style.display = v ? '' : 'none';
}
});
this.bindElement('myKey', '.my-element', MK.binders.visibility(false));
// the same as
this.bindElement('myKey', '.my-element', {
setValue: function (v) {
this.style.display = v ? 'none' : '';
}
});
Matreshka.binders.className(className)
Examples
this.bindElement('myKey', '.my-element', MK.binders.className('foo'));
// the same as
this.bindElement('myKey', '.my-element', {
setValue: function (v) {
$(this).toggleClass('foo', v);
}
});
this.myKey = true; // adds the 'foo' class
this.myKey = false; // removes the 'foo' class
this.bindElement('myKey', '.my-element', MK.binders.className('!foo'));
// the same as
this.bindElement('myKey', '.my-element', {
setValue: function (v) {
$(this).toggleClass('foo', !v);
}
});
this.myKey = false; // adds the 'foo' class
this.myKey = true; // removes the 'foo' class
Matreshka#set(key, value, eventOptions)
The list of the supported flags:
● silent - do not call the change and change:KEY events
● silentHTML - do not change the state of the bound objects
● force - call the change and change:KEY events even though the property value has not been changed
● forceHTML - change the state of the bound element even though the property value has not been changed. This option is necessary
if the bound element has been rendered after the binding (for example, the option tags have been added to select tag)
● skipMediator - prevents the property transformation by a mediator
● skipLinks - prevents the work of dependencies created with the help of Matreshka#linkProps
Matreshka#set(key, value, eventOptions)
Examples
// simple
this.on('change:myKey', function (eventOptions) {
alert(eventOptions.value);
});
this.set('myKey', 3);
// using eventOptions
this.on('change:myKey', function (eventOptions) {
alert(eventOptions.value);
});
this.set('myKey', 4, {
silent: true
});
// passing custom data
this.on('change:myKey', function (eventOptions) {
alert(eventOptions.myCustomFlag);
});
this.set('myKey', 4, {
myCustomFlag: 42
});
Matreshka#set(keyValuePairs, eventOptions)
Examples
this.set({
myKey1: 1,
myKey2: 2
});
// passing eventOptions as second argument
this.set({
myKey: 3
}, {
myFlag: 'Jigurda'
});
Matreshka#$sandbox
Examples
this.bindNode('sandbox', '.app');
this.$sandbox; // the same as $('.app')
Matreshka#$bound(key)
Examples
this.bindNode('myKey', '.my-element');
this.$bound('myKey'); // will return $('.my-element')
// without key
this.bindNode('sandbox', '.app');
this.$bound(); // will return $('.app')
Matreshka#mediate(key, mediator)
Examples
this.mediate('x', function (s) {
return String(s);
});
this.x = 1;
alert(typeof this.x); // 'string'
// a list of keys which are separated by space
this.mediate('x y', function (s) {
return String(s);
});
// an array of keys
this.mediate([ 'x', 'y' ], function (s) {
return String(s);
});
Matreshka#mediate(keyMediatorPairs)
Examples
this.mediate({
x: String,
y: Number,
z: Boolean
});
this.x = 1;
this.y = 2;
this.z = 3;
alert(typeof this.x); // 'string'
alert(typeof this.y); // 'number'
alert(typeof this.z); // 'boolean'
// a list of keys which are separated by spaces
this.mediate({
'u v': String,
'w x': Number,
'y z': Boolean
});
Matreshka#linkProps(keys1, keys2, handler,
setOnInit=true)
Examples
this.linkProps('greeting', 'name', function () {
return 'Hello, ' + this.name + '!';
});
this.name = 'Joe';
alert(this.greeting); // 'Hello, Joe!'
Matreshka#linkProps(keys1, keys2, handler,
setOnInit=true)
Examples
this.a = 3;
this.b = 4;
this.linkProps('p', 'a b', function (a, b) {
return (a + b) * 2;
});
this.linkProps('a', 'p b', function (p, b) {
return p / 2 - b;
});
this.linkProps('b', 'p a', function (p, a) {
return p / 2 - a;
});
alert(this.p); // 14
this.on('change:p', function () {
alert('The perimeter has been changed and equals ' + this.p);
});
this.a = 5; // alerts 'The perimeter has been changed and equals 18'
Matreshka#linkProps(keys, instancesAndKeys, handler,
setOnInit=true)
Examples
anotherInstance1.a = 2;
anotherInstance2.b = 3;
this.linkProps('sum', [
anotherInstance1, 'a',
anotherInstance2, 'b'
], function (a, b) {
return a + b;
});
alert(this.sum); // 5
this.on('change:sum', function () {
alert('this.sum equals ' + this.sum);
});
anotherInstance1.a = 5; // 'this.sum equals 8'
Matreshka#getAnswerToTheUltimateQuestionOfLifeThe
UniverseAndEverything()
Examples
this.getAnswerToTheUltimateQuestionOfLifeTheUniverseAndEverything();
Class Mathreska.Object
Examples
// creation of the instance
new MK.Object;
// creation of the instance with two specified properties
new MK.Object({
a: 1,
b: 2
});
// inheritance
var MyClass = Class({
'extends': MK.Object,
constructor: function() {
this.sayHello();
},
sayHello: function() {
alert('Hello World!');
}
});
Class Mathreska.Object
Examples
// adding the properties which are responsible for the data
this.addDataKeys('a b');
this.a = 1;
this.b = 2;
this.c = 3;
// adding the properties which are responsible for the data with the default value
this.jset({
a: 1,
b: 2
});
this.c = 3;
// in both cases will return the object {a: 1, b: 2}
this.toJSON();
Class Mathreska.Object
Examples
// the same as new MK.Object().jset({a: 1, b: 2});
new MK.Object({
a: 1,
b: 2
});
Class Mathreska.Object
● isMKObject
● keys
● on
● hasOwnProperty
● toObject
● toNative
● toJSON
● keyOf
● jset
● remove
● addDataKeys
● removeDataKeys
● each
Matreshka.Object#toJSON()
Examples
var mkObject = new MK.Object({
a: 1,
b: 2,
c: new MK.Object({
d: 3,
e: 4
})
});
// returns {a: 1, b: 2, c: {d: 3, e: 4}}
mkObject.toJSON();
Matreshka.Object#jset(key, value, evtOpts)
Examples
this.jset('a', 1).jset('b', 2);
this.jset('a', 1).jset('b', 2);
// assigns 3 to the 'c' property,
// but does not add the key to the list of keys which are responsible for the data
this.set('c', 3);
this.each(function (value, key) {
console.log(key, value);
});
// displays 'a' 1 and 'b' 2
console.log(this.keys()); // displays ['a', 'b']
console.log(this.toJSON()); // displays {a: 1, b: 2}
// after using the Matreshka.Object#jset method, you can work with a property like with an ordinary one
this.jset('a', 1).jset('b', 2);
this.set('a', 3);
this.b = 4;
Class Mathreska.Array
Examples
// creation of the instance
new MK.Array;
// creation of the instance with specify length
new MK.Array(42);
// passing data on creation
new MK.Array('Hi', {a: 'b'});
// inheritance
var MyClass = Class({
'extends': MK.Array,
constructor: function () {
this.sayHello();
},
sayHello: function () {
alert('Hello World!');
}
});
Class Mathreska.Array
Examples
// define Model
var MyModel = Class({
'extends': MK.Object,
constructor: function (data) {
this.jset(data);
}
});
// define the class for the collection
var MyArray = Class({
'extends': MK.Array,
Model: MyModel
});
// create the class instance
var myArray = new MyArray;
Class Mathreska.Array
Examples
// add two elements
myArray.push({
a: 1,
b: 2
}, {
a: 3,
b: 4
});
// will return [{a: 1, b: 2}, {a: 3, b: 4}]
myArray.toJSON();
Class Mathreska.Array
Examples
// automatic rendering
var MyModel = MK.Class({
'extends': MK.Object,
constructor: function (data) {
this.jset(data);
this.on('render', function () {
this.bindNode('value', ':sandbox', MK.binders.innerHTML());
});
}
});
var MyArray = MK.Class({
'extends': MK.Array,
Model: MyModel,
itemRenderer: '<li>',
constructor: function () {
this.bindNode('sandbox', '.my-list');
}
});
Class Mathreska.Array
● isMKArray
● useBindingsParser
● renderIfPossible
● itemRenderer
● Model
● mediateItem
● on
● recreate
● toArray
● toNative
● rerender
● hasOwnProperty
● toJSON
● pull
● each
● METHOD
● METHOD_
<virtual>Matreshka.Array#itemRenderer
Examples
var MyArray = Class({
'extends': MK.Array,
itemRenderer: '<li>',
Model: MyModel,
constructor: function () {
this.bindNode('sandbox', '.my-list');
}
});
var MyArray = Class({
'extends': MK.Array,
itemRenderer: '<li>',
Model: MyModel,
constructor: function () {
this.bindNode('sandbox', '.my-widget');
this.bindNode('container', '.my-list');
}
});
<virtual>Matreshka.Array#itemRenderer
Examples
var MyArray = Class({
'extends': MK.Array,
Model: MyModel,
itemRenderer: '<div class="my-div">Be cool</div>', // '#be-cool-template'
constructor: function () { ... }
});
var MyArray = Class({
'extends': MK.Array,
Model: MyModel,
itemRenderer: function () {
return '<div class="my-div">Be cool</div>'; // '#be-cool-template' or document.createElement( 'div' )
},
constructor: function () { ... }
});
<virtual>Matreshka.Array#Model(data, mkArray)
Examples
var MyModel = Class({
'extends': MK.Object,
constructor: function (data) {
this.jset(data);
this.doSomething();
},
doSomething: function () { ... }
});
var MyArray = Class({
'extends': MK.Array,
Model: MyModel
});
<virtual>Matreshka.Array#Model(data, mkArray)
Examples
var myArray = new MyArray;
myArray.push({
a: 1,
b: 2
}, {
a: 3,
b: 4
})
// will return [{a: 1, b: 2}, {a: 3, b: 4}]
myArray.toJSON();
// es6
class MyArray extends MK.Array {
get Model() {
return MyModel;
}
}
Matreshka.Array#METHOD()
Includes all the methods existing in the native JavaScript Array.
Remarks
● The forEach method returns itself instead of undefined
● The methods which return a new array (splice, slice, filter, map...) originally, in Matreshka they return a new Matreshka.Array
instance
Matreshka.Array#METHOD_()
The list of the available flags:
● silent: true - disables event triggering
● dontRender: true - disables rendering
● skipMediator: true - disables mediators
Matreshka.Array#METHOD_()
Examples
this.push_(1, 2, 3, {
silent: true
});
this.pop_({
silent: true
});
this.on('modify', function (evt) {
alert(evt.flag); // 42
});
this.push_(1, 2, 3, {
flag: 42
});
Matreshka.Array#pull(index, evtOptions)
Examples
// passing index of the array
var removed;
this.recreate(['a', 'b', 'c']);
removed = this.pull(1);
alert(removed); // 'b'
alert(this.toString()); // 'a,c'
// passing of the delete
var object1 = {},
object2 = {},
removed;
this.push(object1, object2);
removed = this.pull(object2);
alert(removed === object2); // true
alert(this.length); // 1
Questions?
The end

More Related Content

What's hot

jQuery secrets
jQuery secretsjQuery secrets
jQuery secrets
Bastian Feder
 
JQuery New Evolution
JQuery New EvolutionJQuery New Evolution
JQuery New Evolution
Allan Huang
 
Chaining and function composition with lodash / underscore
Chaining and function composition with lodash / underscoreChaining and function composition with lodash / underscore
Chaining and function composition with lodash / underscore
Nicolas Carlo
 
Regexes and-performance-testing
Regexes and-performance-testingRegexes and-performance-testing
Regexes and-performance-testing
doughellmann
 
Dwr explanation
Dwr explanationDwr explanation
Dwr explanation
Arun Maharana
 
Interoperable Component Patterns
Interoperable Component PatternsInteroperable Component Patterns
Interoperable Component Patterns
Matthew Beale
 
React in 50 Minutes (DevNexus)
React in 50 Minutes (DevNexus) React in 50 Minutes (DevNexus)
React in 50 Minutes (DevNexus)
Maarten Mulders
 
Using Change Streams to Keep Up with Your Data
Using Change Streams to Keep Up with Your DataUsing Change Streams to Keep Up with Your Data
Using Change Streams to Keep Up with Your Data
Evan Rodd
 
Dependency Injection
Dependency InjectionDependency Injection
Dependency Injection
Rifat Nabi
 
Magic methods
Magic methodsMagic methods
Magic methods
Matthew Barlocker
 
PHP 5 Magic Methods
PHP 5 Magic MethodsPHP 5 Magic Methods
PHP 5 Magic Methods
David Stockton
 
React, Redux and es6/7
React, Redux and es6/7React, Redux and es6/7
React, Redux and es6/7
Dongho Cho
 
안드로이드 데이터 바인딩
안드로이드 데이터 바인딩안드로이드 데이터 바인딩
안드로이드 데이터 바인딩
GDG Korea
 
XML-RPC vs Psycopg2
XML-RPC vs Psycopg2XML-RPC vs Psycopg2
XML-RPC vs Psycopg2
Associazione Odoo Italia
 
Php user groupmemcached
Php user groupmemcachedPhp user groupmemcached
Php user groupmemcached
Jason Anderson
 
"Auth for React.js APP", Nikita Galkin
"Auth for React.js APP", Nikita Galkin"Auth for React.js APP", Nikita Galkin
"Auth for React.js APP", Nikita Galkin
Fwdays
 
Django - sql alchemy - jquery
Django - sql alchemy - jqueryDjango - sql alchemy - jquery
Django - sql alchemy - jquery
Mohammed El Rafie Tarabay
 
#살아있다 #자프링외길12년차 #코프링2개월생존기
#살아있다 #자프링외길12년차 #코프링2개월생존기#살아있다 #자프링외길12년차 #코프링2개월생존기
#살아있다 #자프링외길12년차 #코프링2개월생존기
Arawn Park
 
Android Testing
Android TestingAndroid Testing
Android Testing
Evan Lin
 

What's hot (19)

jQuery secrets
jQuery secretsjQuery secrets
jQuery secrets
 
JQuery New Evolution
JQuery New EvolutionJQuery New Evolution
JQuery New Evolution
 
Chaining and function composition with lodash / underscore
Chaining and function composition with lodash / underscoreChaining and function composition with lodash / underscore
Chaining and function composition with lodash / underscore
 
Regexes and-performance-testing
Regexes and-performance-testingRegexes and-performance-testing
Regexes and-performance-testing
 
Dwr explanation
Dwr explanationDwr explanation
Dwr explanation
 
Interoperable Component Patterns
Interoperable Component PatternsInteroperable Component Patterns
Interoperable Component Patterns
 
React in 50 Minutes (DevNexus)
React in 50 Minutes (DevNexus) React in 50 Minutes (DevNexus)
React in 50 Minutes (DevNexus)
 
Using Change Streams to Keep Up with Your Data
Using Change Streams to Keep Up with Your DataUsing Change Streams to Keep Up with Your Data
Using Change Streams to Keep Up with Your Data
 
Dependency Injection
Dependency InjectionDependency Injection
Dependency Injection
 
Magic methods
Magic methodsMagic methods
Magic methods
 
PHP 5 Magic Methods
PHP 5 Magic MethodsPHP 5 Magic Methods
PHP 5 Magic Methods
 
React, Redux and es6/7
React, Redux and es6/7React, Redux and es6/7
React, Redux and es6/7
 
안드로이드 데이터 바인딩
안드로이드 데이터 바인딩안드로이드 데이터 바인딩
안드로이드 데이터 바인딩
 
XML-RPC vs Psycopg2
XML-RPC vs Psycopg2XML-RPC vs Psycopg2
XML-RPC vs Psycopg2
 
Php user groupmemcached
Php user groupmemcachedPhp user groupmemcached
Php user groupmemcached
 
"Auth for React.js APP", Nikita Galkin
"Auth for React.js APP", Nikita Galkin"Auth for React.js APP", Nikita Galkin
"Auth for React.js APP", Nikita Galkin
 
Django - sql alchemy - jquery
Django - sql alchemy - jqueryDjango - sql alchemy - jquery
Django - sql alchemy - jquery
 
#살아있다 #자프링외길12년차 #코프링2개월생존기
#살아있다 #자프링외길12년차 #코프링2개월생존기#살아있다 #자프링외길12년차 #코프링2개월생존기
#살아있다 #자프링외길12년차 #코프링2개월생존기
 
Android Testing
Android TestingAndroid Testing
Android Testing
 

Viewers also liked

"Gentleman of Rio en Medio"
"Gentleman of Rio en Medio""Gentleman of Rio en Medio"
"Gentleman of Rio en Medio"
Carlton-Track
 
Evaluation question 2
Evaluation question 2Evaluation question 2
Evaluation question 2
LauraBriscoe98
 
Chapter 12
Chapter 12Chapter 12
Chapter 12
Sine Ka
 
Structure Technology for Success
Structure Technology for SuccessStructure Technology for Success
Structure Technology for Success
Renier Botha MBCS CITP
 
Neil Cliff CV 3
Neil Cliff CV 3Neil Cliff CV 3
Neil Cliff CV 3
Neil Cliff
 
CV
CVCV
Reunion Programme
Reunion ProgrammeReunion Programme
Reunion Programme
mrantonioferrara
 
Bars & Pubs - Eagles Nest
Bars & Pubs - Eagles NestBars & Pubs - Eagles Nest
Bars & Pubs - Eagles Nest
valenzuelazjywklithe
 
Conditional Sentence by Heni Wahyu Arini
Conditional Sentence by Heni Wahyu AriniConditional Sentence by Heni Wahyu Arini
Conditional Sentence by Heni Wahyu Arini
heniwahyuarini95
 
Nervous System
Nervous SystemNervous System
Nervous System
akclifton1
 
Woyzeck Programme
Woyzeck ProgrammeWoyzeck Programme
Woyzeck Programme
mrantonioferrara
 
Insight presentation
Insight presentationInsight presentation
Insight presentation
LauraBriscoe98
 
Matreshka.js
Matreshka.jsMatreshka.js
New Microsoft PowerPoint Presentation
New Microsoft PowerPoint PresentationNew Microsoft PowerPoint Presentation
New Microsoft PowerPoint Presentation
Ahmed Sedhom
 
Media research
Media researchMedia research
Media research
marco101010
 
Media: Logbook
Media: LogbookMedia: Logbook
Media: Logbook
marco101010
 
Microsoft WinDays16 Technology Dynamics AX 7 Cloud ERP.PPTX
Microsoft WinDays16 Technology Dynamics AX 7 Cloud ERP.PPTXMicrosoft WinDays16 Technology Dynamics AX 7 Cloud ERP.PPTX
Microsoft WinDays16 Technology Dynamics AX 7 Cloud ERP.PPTXAndrej Ko?i?
 
Evaluation question 4
Evaluation question 4Evaluation question 4
Evaluation question 4
LauraBriscoe98
 
Independent textual analysis_1
Independent textual analysis_1Independent textual analysis_1
Independent textual analysis_1
marco101010
 

Viewers also liked (19)

"Gentleman of Rio en Medio"
"Gentleman of Rio en Medio""Gentleman of Rio en Medio"
"Gentleman of Rio en Medio"
 
Evaluation question 2
Evaluation question 2Evaluation question 2
Evaluation question 2
 
Chapter 12
Chapter 12Chapter 12
Chapter 12
 
Structure Technology for Success
Structure Technology for SuccessStructure Technology for Success
Structure Technology for Success
 
Neil Cliff CV 3
Neil Cliff CV 3Neil Cliff CV 3
Neil Cliff CV 3
 
CV
CVCV
CV
 
Reunion Programme
Reunion ProgrammeReunion Programme
Reunion Programme
 
Bars & Pubs - Eagles Nest
Bars & Pubs - Eagles NestBars & Pubs - Eagles Nest
Bars & Pubs - Eagles Nest
 
Conditional Sentence by Heni Wahyu Arini
Conditional Sentence by Heni Wahyu AriniConditional Sentence by Heni Wahyu Arini
Conditional Sentence by Heni Wahyu Arini
 
Nervous System
Nervous SystemNervous System
Nervous System
 
Woyzeck Programme
Woyzeck ProgrammeWoyzeck Programme
Woyzeck Programme
 
Insight presentation
Insight presentationInsight presentation
Insight presentation
 
Matreshka.js
Matreshka.jsMatreshka.js
Matreshka.js
 
New Microsoft PowerPoint Presentation
New Microsoft PowerPoint PresentationNew Microsoft PowerPoint Presentation
New Microsoft PowerPoint Presentation
 
Media research
Media researchMedia research
Media research
 
Media: Logbook
Media: LogbookMedia: Logbook
Media: Logbook
 
Microsoft WinDays16 Technology Dynamics AX 7 Cloud ERP.PPTX
Microsoft WinDays16 Technology Dynamics AX 7 Cloud ERP.PPTXMicrosoft WinDays16 Technology Dynamics AX 7 Cloud ERP.PPTX
Microsoft WinDays16 Technology Dynamics AX 7 Cloud ERP.PPTX
 
Evaluation question 4
Evaluation question 4Evaluation question 4
Evaluation question 4
 
Independent textual analysis_1
Independent textual analysis_1Independent textual analysis_1
Independent textual analysis_1
 

Similar to Matreshka.js

Object-Oriented Javascript
Object-Oriented JavascriptObject-Oriented Javascript
Object-Oriented Javascript
kvangork
 
Object-Oriented JavaScript
Object-Oriented JavaScriptObject-Oriented JavaScript
Object-Oriented JavaScript
kvangork
 
JavaScript Refactoring
JavaScript RefactoringJavaScript Refactoring
JavaScript Refactoring
Krzysztof Szafranek
 
Clean Javascript
Clean JavascriptClean Javascript
Clean Javascript
Ryunosuke SATO
 
Exercícios Netbeans - Vera Cymbron
Exercícios Netbeans - Vera CymbronExercícios Netbeans - Vera Cymbron
Exercícios Netbeans - Vera Cymbron
cymbron
 
Architecting JavaScript Code
Architecting JavaScript CodeArchitecting JavaScript Code
Architecting JavaScript Code
Suresh Balla
 
Recompacting your react application
Recompacting your react applicationRecompacting your react application
Recompacting your react application
Greg Bergé
 
Virtual Madness @ Etsy
Virtual Madness @ EtsyVirtual Madness @ Etsy
Virtual Madness @ Etsy
Nishan Subedi
 
AngularJS: what is underneath the hood
AngularJS: what is underneath the hood AngularJS: what is underneath the hood
AngularJS: what is underneath the hood
DA-14
 
Backbone Basics with Examples
Backbone Basics with ExamplesBackbone Basics with Examples
Backbone Basics with Examples
Sergey Bolshchikov
 
Developing web-apps like it's 2013
Developing web-apps like it's 2013Developing web-apps like it's 2013
Developing web-apps like it's 2013
Laurent_VB
 
Writing Maintainable JavaScript
Writing Maintainable JavaScriptWriting Maintainable JavaScript
Writing Maintainable JavaScript
Andrew Dupont
 
Js 单元测试框架介绍
Js 单元测试框架介绍Js 单元测试框架介绍
Js 单元测试框架介绍
louieuser
 
Bindings: the zen of montage
Bindings: the zen of montageBindings: the zen of montage
Bindings: the zen of montage
Kris Kowal
 
JavaScript and UI Architecture Best Practices
JavaScript and UI Architecture Best PracticesJavaScript and UI Architecture Best Practices
JavaScript and UI Architecture Best Practices
Siarhei Barysiuk
 
Ten useful JavaScript tips & best practices
Ten useful JavaScript tips & best practicesTen useful JavaScript tips & best practices
Ten useful JavaScript tips & best practices
Ankit Rastogi
 
Jeroen Vloothuis Bend Kss To Your Will
Jeroen Vloothuis   Bend Kss To Your WillJeroen Vloothuis   Bend Kss To Your Will
Jeroen Vloothuis Bend Kss To Your Will
Vincenzo Barone
 
Advance Java Programs skeleton
Advance Java Programs skeletonAdvance Java Programs skeleton
Advance Java Programs skeleton
Iram Ramrajkar
 
TypeScript Introduction
TypeScript IntroductionTypeScript Introduction
TypeScript Introduction
Dmitry Sheiko
 
Ad java prac sol set
Ad java prac sol setAd java prac sol set
Ad java prac sol set
Iram Ramrajkar
 

Similar to Matreshka.js (20)

Object-Oriented Javascript
Object-Oriented JavascriptObject-Oriented Javascript
Object-Oriented Javascript
 
Object-Oriented JavaScript
Object-Oriented JavaScriptObject-Oriented JavaScript
Object-Oriented JavaScript
 
JavaScript Refactoring
JavaScript RefactoringJavaScript Refactoring
JavaScript Refactoring
 
Clean Javascript
Clean JavascriptClean Javascript
Clean Javascript
 
Exercícios Netbeans - Vera Cymbron
Exercícios Netbeans - Vera CymbronExercícios Netbeans - Vera Cymbron
Exercícios Netbeans - Vera Cymbron
 
Architecting JavaScript Code
Architecting JavaScript CodeArchitecting JavaScript Code
Architecting JavaScript Code
 
Recompacting your react application
Recompacting your react applicationRecompacting your react application
Recompacting your react application
 
Virtual Madness @ Etsy
Virtual Madness @ EtsyVirtual Madness @ Etsy
Virtual Madness @ Etsy
 
AngularJS: what is underneath the hood
AngularJS: what is underneath the hood AngularJS: what is underneath the hood
AngularJS: what is underneath the hood
 
Backbone Basics with Examples
Backbone Basics with ExamplesBackbone Basics with Examples
Backbone Basics with Examples
 
Developing web-apps like it's 2013
Developing web-apps like it's 2013Developing web-apps like it's 2013
Developing web-apps like it's 2013
 
Writing Maintainable JavaScript
Writing Maintainable JavaScriptWriting Maintainable JavaScript
Writing Maintainable JavaScript
 
Js 单元测试框架介绍
Js 单元测试框架介绍Js 单元测试框架介绍
Js 单元测试框架介绍
 
Bindings: the zen of montage
Bindings: the zen of montageBindings: the zen of montage
Bindings: the zen of montage
 
JavaScript and UI Architecture Best Practices
JavaScript and UI Architecture Best PracticesJavaScript and UI Architecture Best Practices
JavaScript and UI Architecture Best Practices
 
Ten useful JavaScript tips & best practices
Ten useful JavaScript tips & best practicesTen useful JavaScript tips & best practices
Ten useful JavaScript tips & best practices
 
Jeroen Vloothuis Bend Kss To Your Will
Jeroen Vloothuis   Bend Kss To Your WillJeroen Vloothuis   Bend Kss To Your Will
Jeroen Vloothuis Bend Kss To Your Will
 
Advance Java Programs skeleton
Advance Java Programs skeletonAdvance Java Programs skeleton
Advance Java Programs skeleton
 
TypeScript Introduction
TypeScript IntroductionTypeScript Introduction
TypeScript Introduction
 
Ad java prac sol set
Ad java prac sol setAd java prac sol set
Ad java prac sol set
 

Recently uploaded

Using-Presentation-Software-to-the-Fullf.pptx
Using-Presentation-Software-to-the-Fullf.pptxUsing-Presentation-Software-to-the-Fullf.pptx
Using-Presentation-Software-to-the-Fullf.pptx
kainatfatyma9
 
一比一原版(unc毕业证书)美国北卡罗来纳大学教堂山分校毕业证如何办理
一比一原版(unc毕业证书)美国北卡罗来纳大学教堂山分校毕业证如何办理一比一原版(unc毕业证书)美国北卡罗来纳大学教堂山分校毕业证如何办理
一比一原版(unc毕业证书)美国北卡罗来纳大学教堂山分校毕业证如何办理
gfysze
 
SASi-SPi Science Policy Lab Pre-engagement
SASi-SPi Science Policy Lab Pre-engagementSASi-SPi Science Policy Lab Pre-engagement
SASi-SPi Science Policy Lab Pre-engagement
Francois Stepman
 
Legislation And Regulations For Import, Manufacture,.pptx
Legislation And Regulations For Import, Manufacture,.pptxLegislation And Regulations For Import, Manufacture,.pptx
Legislation And Regulations For Import, Manufacture,.pptx
Charmi13
 
怎么办理(lincoln学位证书)英国林肯大学毕业证文凭学位证书原版一模一样
怎么办理(lincoln学位证书)英国林肯大学毕业证文凭学位证书原版一模一样怎么办理(lincoln学位证书)英国林肯大学毕业证文凭学位证书原版一模一样
怎么办理(lincoln学位证书)英国林肯大学毕业证文凭学位证书原版一模一样
kekzed
 
Gamify it until you make it Improving Agile Development and Operations with ...
Gamify it until you make it  Improving Agile Development and Operations with ...Gamify it until you make it  Improving Agile Development and Operations with ...
Gamify it until you make it Improving Agile Development and Operations with ...
Ben Linders
 
AWS User Group Torino 2024 #3 - 18/06/2024
AWS User Group Torino 2024 #3 - 18/06/2024AWS User Group Torino 2024 #3 - 18/06/2024
AWS User Group Torino 2024 #3 - 18/06/2024
Guido Maria Nebiolo
 
ACTIVE IMPLANTABLE MEDICAL DEVICE IN EUROPE
ACTIVE IMPLANTABLE MEDICAL DEVICE IN EUROPEACTIVE IMPLANTABLE MEDICAL DEVICE IN EUROPE
ACTIVE IMPLANTABLE MEDICAL DEVICE IN EUROPE
Charmi13
 
2023 Ukraine Crisis Media Center Annual Report
2023 Ukraine Crisis Media Center Annual Report2023 Ukraine Crisis Media Center Annual Report
2023 Ukraine Crisis Media Center Annual Report
UkraineCrisisMediaCenter
 
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
OECD Directorate for Financial and Enterprise Affairs
 
Proposal: The Ark Project and The BEEP Inc
Proposal: The Ark Project and The BEEP IncProposal: The Ark Project and The BEEP Inc
Proposal: The Ark Project and The BEEP Inc
Raheem Muhammad
 
Bridging the visual gap between cultural heritage and digital scholarship
Bridging the visual gap between cultural heritage and digital scholarshipBridging the visual gap between cultural heritage and digital scholarship
Bridging the visual gap between cultural heritage and digital scholarship
Inesm9
 
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
OECD Directorate for Financial and Enterprise Affairs
 
Data Processing in PHP - PHPers 2024 Poznań
Data Processing in PHP - PHPers 2024 PoznańData Processing in PHP - PHPers 2024 Poznań
Data Processing in PHP - PHPers 2024 Poznań
Norbert Orzechowicz
 
Genesis chapter 3 Isaiah Scudder.pptx
Genesis    chapter 3 Isaiah Scudder.pptxGenesis    chapter 3 Isaiah Scudder.pptx
Genesis chapter 3 Isaiah Scudder.pptx
FamilyWorshipCenterD
 
The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...
The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...
The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...
OECD Directorate for Financial and Enterprise Affairs
 
2 December UAE National Day - United Arab Emirates
2 December UAE National Day - United Arab Emirates2 December UAE National Day - United Arab Emirates
2 December UAE National Day - United Arab Emirates
UAE Ppt
 
The Intersection between Competition and Data Privacy – COLANGELO – June 2024...
The Intersection between Competition and Data Privacy – COLANGELO – June 2024...The Intersection between Competition and Data Privacy – COLANGELO – June 2024...
The Intersection between Competition and Data Privacy – COLANGELO – June 2024...
OECD Directorate for Financial and Enterprise Affairs
 
2023 Ukraine Crisis Media Center Financial Report
2023 Ukraine Crisis Media Center Financial Report2023 Ukraine Crisis Media Center Financial Report
2023 Ukraine Crisis Media Center Financial Report
UkraineCrisisMediaCenter
 
ServiceNow CIS-ITSM Exam Dumps & Questions [2024]
ServiceNow CIS-ITSM Exam Dumps & Questions [2024]ServiceNow CIS-ITSM Exam Dumps & Questions [2024]
ServiceNow CIS-ITSM Exam Dumps & Questions [2024]
SkillCertProExams
 

Recently uploaded (20)

Using-Presentation-Software-to-the-Fullf.pptx
Using-Presentation-Software-to-the-Fullf.pptxUsing-Presentation-Software-to-the-Fullf.pptx
Using-Presentation-Software-to-the-Fullf.pptx
 
一比一原版(unc毕业证书)美国北卡罗来纳大学教堂山分校毕业证如何办理
一比一原版(unc毕业证书)美国北卡罗来纳大学教堂山分校毕业证如何办理一比一原版(unc毕业证书)美国北卡罗来纳大学教堂山分校毕业证如何办理
一比一原版(unc毕业证书)美国北卡罗来纳大学教堂山分校毕业证如何办理
 
SASi-SPi Science Policy Lab Pre-engagement
SASi-SPi Science Policy Lab Pre-engagementSASi-SPi Science Policy Lab Pre-engagement
SASi-SPi Science Policy Lab Pre-engagement
 
Legislation And Regulations For Import, Manufacture,.pptx
Legislation And Regulations For Import, Manufacture,.pptxLegislation And Regulations For Import, Manufacture,.pptx
Legislation And Regulations For Import, Manufacture,.pptx
 
怎么办理(lincoln学位证书)英国林肯大学毕业证文凭学位证书原版一模一样
怎么办理(lincoln学位证书)英国林肯大学毕业证文凭学位证书原版一模一样怎么办理(lincoln学位证书)英国林肯大学毕业证文凭学位证书原版一模一样
怎么办理(lincoln学位证书)英国林肯大学毕业证文凭学位证书原版一模一样
 
Gamify it until you make it Improving Agile Development and Operations with ...
Gamify it until you make it  Improving Agile Development and Operations with ...Gamify it until you make it  Improving Agile Development and Operations with ...
Gamify it until you make it Improving Agile Development and Operations with ...
 
AWS User Group Torino 2024 #3 - 18/06/2024
AWS User Group Torino 2024 #3 - 18/06/2024AWS User Group Torino 2024 #3 - 18/06/2024
AWS User Group Torino 2024 #3 - 18/06/2024
 
ACTIVE IMPLANTABLE MEDICAL DEVICE IN EUROPE
ACTIVE IMPLANTABLE MEDICAL DEVICE IN EUROPEACTIVE IMPLANTABLE MEDICAL DEVICE IN EUROPE
ACTIVE IMPLANTABLE MEDICAL DEVICE IN EUROPE
 
2023 Ukraine Crisis Media Center Annual Report
2023 Ukraine Crisis Media Center Annual Report2023 Ukraine Crisis Media Center Annual Report
2023 Ukraine Crisis Media Center Annual Report
 
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
The Intersection between Competition and Data Privacy – KEMP – June 2024 OECD...
 
Proposal: The Ark Project and The BEEP Inc
Proposal: The Ark Project and The BEEP IncProposal: The Ark Project and The BEEP Inc
Proposal: The Ark Project and The BEEP Inc
 
Bridging the visual gap between cultural heritage and digital scholarship
Bridging the visual gap between cultural heritage and digital scholarshipBridging the visual gap between cultural heritage and digital scholarship
Bridging the visual gap between cultural heritage and digital scholarship
 
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
The Intersection between Competition and Data Privacy – OECD – June 2024 OECD...
 
Data Processing in PHP - PHPers 2024 Poznań
Data Processing in PHP - PHPers 2024 PoznańData Processing in PHP - PHPers 2024 Poznań
Data Processing in PHP - PHPers 2024 Poznań
 
Genesis chapter 3 Isaiah Scudder.pptx
Genesis    chapter 3 Isaiah Scudder.pptxGenesis    chapter 3 Isaiah Scudder.pptx
Genesis chapter 3 Isaiah Scudder.pptx
 
The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...
The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...
The Intersection between Competition and Data Privacy – CAPEL – June 2024 OEC...
 
2 December UAE National Day - United Arab Emirates
2 December UAE National Day - United Arab Emirates2 December UAE National Day - United Arab Emirates
2 December UAE National Day - United Arab Emirates
 
The Intersection between Competition and Data Privacy – COLANGELO – June 2024...
The Intersection between Competition and Data Privacy – COLANGELO – June 2024...The Intersection between Competition and Data Privacy – COLANGELO – June 2024...
The Intersection between Competition and Data Privacy – COLANGELO – June 2024...
 
2023 Ukraine Crisis Media Center Financial Report
2023 Ukraine Crisis Media Center Financial Report2023 Ukraine Crisis Media Center Financial Report
2023 Ukraine Crisis Media Center Financial Report
 
ServiceNow CIS-ITSM Exam Dumps & Questions [2024]
ServiceNow CIS-ITSM Exam Dumps & Questions [2024]ServiceNow CIS-ITSM Exam Dumps & Questions [2024]
ServiceNow CIS-ITSM Exam Dumps & Questions [2024]
 

Matreshka.js