Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Сравнение примесей и прототипн 1Стр 1 из 2Следующая ⇒ ExtendEvent1 //JS function Button(elem) { elem.addEventListener('click', this.log);} Button.prototype.log = function () { console.log('123');};
function Button2(elem) { Button.apply(this, arguments);} Button2.prototype = Object.create(Button.prototype); Button2.prototype.log = function () { console.log('456');}; window.onload = function () { var btn1 = new Button(document.getElementById('btn1')); var btn2 = new Button2(document.getElementById('btn2'));}; //HTML <button id="btn1">Button 1</button> <button id="btn2">Button 2</button> ExtendEvent2 // ModalView.js var ModalView = Backbone.View.extend({ events: { 'click.close-button': 'closeButtonClicked' }, closeButtonClicked: function () { /* Whatever */ } // Other stuff that the modal does }); ModalView.extend = function (child) { var view = Backbone.View.extend.apply(this, arguments); view.prototype.events = _.extend({}, this. prototype.events, child.events); return view; }; // MessageModalView.js var MessageModalView = ModalView.extend({ events: { 'click.share': 'shareButtonClicked' }, shareButtonClicked: function () { /* Whatever */ } }); // ChatModalView.js var ChatModalView = ModalView.extend({ events: { 'click.send-button': 'sendButtonClicked' }, sendButtonClicked: function () { /* Whatever */ } }); Primice var extend = function(target){ if(!arguments[1]){ return; } for (var i = 1; i < arguments.length; i++) { var source = arguments[i];
console.log(source); for (var prop in source) { if(!target[prop] && source.hasOwnProperty(prop)){ target[prop] = source[prop]; } } }}; var Track = function(name){ this.name = name;}; var PlayList = function(name){ this.name = name;}; var nameMixin = { getName:function(){ return this.name; }}; var controlMixin = { play:function(){ console.log(this.name + ' started playing'); }}; extend(Track.prototype, nameMixin, controlMixin); extend(PlayList.prototype, nameMixin, controlMixin); var superTrack = new Track('Super track'); var coolPlayList = new PlayList('Cool playList');
console.log(superTrack); console.log(superTrack.getName()); superTrack.play(); console.log(coolPlayList); console.log(coolPlayList.getName()); coolPlayList.play(); Sereliz/desereliz // de serialization .js var serialization = require('./serialization'); exports.deserialize= function(){ var result = JSON.parse(serialization.file); console.log(result.name); console.log(result.age); console.log(result.gender);} //serialization .js var Rabbit = { name:'Roger', age: 25, gender: 'male' } var file=JSON.stringify(Rabbit); console.log(file); exports.file=file;
//main.js var deserialization = require('./deserialization'); deserialization.deserialize();
Wrap var fs = require('fs');
function wrapFunction(fnName, fn) { return function wrapper() { var args = []; Array.prototype.push.apply(args, arguments); console.log('Function name: ' + fnName); console.dir('Function argument: '+args); fn.apply(undefined, args); }}
function cloneInterface(anInterface) { var clone = {}; for (var key in anInterface) { clone[key] = wrapFunction(key, anInterface[key]); } return clone;} var fake = cloneInterface(fs); fake.rename('first.txt', 'second.txt', (err) => { if (err) throw err; console.log('Renamed complete'); });
Type and JVM(Progrev code) /*Прогрев кода - когда функция запускается много раз, чтобы JIT подстроился под задачу и оптимально скомпилировал код. */ public class Main{ public static void main (String [] args) { for (int repeat = 0; repeat < 1500; ++ repeat) { long i=System.currentTimeMillis(); for (int r = 0; r < 1500; ++r){ sum (1000); } long u=System.currentTimeMillis(); System.out.println (repeat + ": " + (u-i)); } } public static int sum (int n) { if (n <= 1) return 1; else return n + sum (n - 1); }} //Динамическая типизация var result = "string1"; console.log(result); // выводит "string1" result = 1; console.log(result); // выводит "1" result += 2; console.log(result); // выводит "3" result += 'string2'; console.log(result); // выводит "3string2"//Конец демонстрации динамической типизации /*function sum(n) {if (n == 1) return 1; return n + sum(n-1);} for (var repeat = 0; repeat < 1500; ++repeat){ var timeS = new Date().getTime(); for (var r = 0; r < 1000; ++r){ sum (1000); } var timeF=new Date().getTime(); console.log(""+repeat+": "+(timeF-timeS));} */ TSP //SERVER.JS var net = require('net');
var server = net.createServer(function(socket) { socket.write('From server'); socket.pipe(socket); });
server.listen(1337, '127.0.0.1'); //CLIENT.JS var net = require('net');
var client = new net.Socket(); client.connect(1337, '127.0.0.1', function() { console.log('Connected'); client.write('Hello, server! From client'); });
client.on('data', function(data) { console.log('Received: ' + data); });
client.on('close', function() { console.log('Connection closed'); });
Связь собитий //radio.js var util = require('util'); var EventEmitter = require('events').EventEmitter; var Radio = function(station) { var self = this; var onAir = setTimeout(function() { self.emit('onAir', station); }, 0); var broadcast = setInterval(function() { self.emit('broadcast', station); }, 5000); var offAir = setTimeout(function() { clearInterval(broadcast); self.emit('offAir', station); }, 16000); }; util.inherits(Radio, EventEmitter); module.exports = Radio; //example.js var Radio = require('./radio.js'); var station = { freq: '19.97', name: 'VBradio',}; var radio = new Radio(station); radio.on('onAir', function(station) { console.log('"%s" FM %s On Air', station.name, station.freq);}); radio.on('broadcast', function(station) { console.log('"%s" FM %s plays song', station.name, station.freq);});
radio.on('offAir', function(station) { console.log('"%s" FM %s Off Air', station.name, station.freq);}); Сравнение примесей и прототипн 1 // 1. Êîíñòðóêòîð Animal function Animal(name) { this.name = name; this.speed = 0;}// 1.1. Ìåòîäû -- â ïðîòîòèï Animal.prototype.stop = function() { this.speed = 0; console.log(this.name + ' stays');} Animal.prototype.run = function(speed) { var x = 0; for (var repeat = 0; repeat < 1000000; ++repeat){ x+=1; } this.speed += speed; console.log(this.name + ' runs, speed ' + this.speed);};// 2. Êîíñòðóêòîð Rabbit function Rabbit(name) { this.name = name; this.speed = 0;} var timeS1 = new Date().getTime();// 2.1. Íàñëåäîâàíèå Rabbit.prototype = Object.create(Animal.prototype); Rabbit.prototype.constructor = Rabbit;// 2.2. Ìåòîäû Rabbit Rabbit.prototype.jump = function() { this.speed++; console.log(this.name + ' jumps, speed: ' + this.speed);} var rabbit = new Rabbit('Krol'); rabbit.run(20); var timeF1=new Date().getTime(); console.log(timeF1-timeS1);// ïðèìåñü var sayHiMixin = {
|