Last active
July 17, 2016 06:58
-
-
Save romamaslennikov/03d768082034657ac6dec3e8190513dc to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//модуль | |
var basketModule = (function() { | |
var basket = []; // приватная переменная | |
return { // методы доступные извне | |
addItem: function(values) { | |
basket.push(values); | |
}, | |
getItemCount: function() { | |
return basket.length; | |
}, | |
getTotal: function() { | |
var q = this.getItemCount(),p=0; | |
while(q--){ | |
p+= basket[q].price; | |
} | |
return p; | |
} | |
} | |
}()); | |
//фассад | |
var module = (function() { | |
var _private = { | |
i: 5, | |
get: function() { | |
console.log('Текущее значение:' + this.i); | |
}, | |
set: function(val) { | |
this.i = val; | |
}, | |
run: function() { | |
console.log('процесс запущен'); | |
}, | |
jump: function() { | |
console.log('резкое изменение'); | |
} | |
}; | |
return { | |
facade: function(args) { | |
_private.set(args.val); | |
_private.get(); | |
if (args.run) { | |
_private.run(); | |
} | |
} | |
} | |
}()); | |
//медиатор | |
var mediator = (function() { | |
var subscribe = function(channel, fn) { | |
if (!mediator.channels[channel]) mediator.channels[channel] = []; | |
mediator.channels[channel].push({ context: this, callback: fn }); | |
return this; | |
}, | |
publish = function(channel) { | |
if (!mediator.channels[channel]) return false; | |
var args = Array.prototype.slice.call(arguments, 1); | |
for (var i = 0, l = mediator.channels[channel].length; i < l; i++) { | |
var subscription = mediator.channels[channel][i]; | |
subscription.callback.apply(subscription.context, args); | |
} | |
return this; | |
}; | |
return { | |
channels: {}, | |
publish: publish, | |
subscribe: subscribe, | |
installTo: function(obj) { | |
obj.subscribe = subscribe; | |
obj.publish = publish; | |
} | |
}; | |
}()); | |
//apiMessenger | |
var apiMessenger = (function() { | |
var switcher = true; | |
var arr = []; | |
return { | |
mess: function(mess) { | |
if(switcher){ | |
if(arr[arr.length-1] == mess){ | |
arr.push(mess); | |
}else{ | |
arr.push(mess); | |
return console.log('--------> is '+ mess +' <--------'); | |
} | |
} | |
} | |
} | |
}()); | |
// for | |
var i, myarray = []; | |
for (i = myarray.length; i--;) { | |
// выполнить какие-либо операции над myarray[i] | |
} | |
var myarray = [], | |
i = myarray.length; | |
while (i--) { | |
// выполнить какие-либо операции над myarray[i] | |
} | |
// цикл for-in | |
for (var i in man) { | |
if (man.hasOwnProperty(i)) { // фильтрация | |
console.log(i, “:”, man[i]); | |
} | |
} | |
for (var i in man) { | |
if (Object.prototype.hasOwnProperty.call(man, i)) { // фильтрация | |
console.log(i, “:”, man[i]); | |
} | |
} | |
var i, | |
hasOwn = Object.prototype.hasOwnProperty; | |
for (i in man) { | |
if (hasOwn.call(man, i)) { // фильтрация | |
console.log(i, “:”, man[i]); | |
} | |
} | |
if (typeof Object.protoype.myMethod !== “function”) { | |
Object.protoype.myMethod = function () { | |
// реализация... | |
}; | |
} | |
// switch | |
var inspect_me = 0, | |
result = ‘’; | |
switch (inspect_me) { | |
case 0: | |
result = “zero”; | |
break; | |
case 1: | |
result = “one”; | |
break; | |
default: | |
result = “unknown”; | |
} | |
// eval | |
console.log(typeof un); // “undefined” | |
console.log(typeof deux); // “undefined” | |
console.log(typeof trois); // “undefined” | |
var jsstring = “var un = 1; console.log(un);”; | |
eval(jsstring); // выведет “1” не рекомендуется | |
jsstring = “var deux = 2; console.log(deux);”; | |
new Function(jsstring)(); // выведет “2” | |
jsstring = “var trois = 3; console.log(trois);”; | |
(function () { | |
eval(jsstring); | |
}()); // выведет “3” | |
//конструктор | |
function Waffle() { | |
var me = {}; | |
me.tastes = “yummy”; | |
return me; | |
} | |
// JSON | |
// входная строка в формате JSON | |
var jstr = ‘{“mykey”: “my value”}’; | |
// предпочтительный способ | |
var data = JSON.parse(jstr); | |
var dog = { | |
name: “Fido”, | |
dob: new Date(), | |
legs: [1, 2, 3, 4] | |
}; | |
var jsonstr = JSON.stringify(dog); | |
// в результате будет получена строка jsonstr: | |
// {“name”:”Fido”,”dob”:”2010-04-11T22:36:22.436Z”,”legs”:[1,2,3,4]} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment