|
|
°²×¿½Å±¾¶à±äµÄfunctionÓ÷¨
- //🍎½»Á÷QQȺ711841924Ⱥһ£¬Æ»¹ûÄÚ²âȺ£¬528816639
- /**
- * =============================================================================
- * AIWROK ¸ß¼¶º¯Êý·â×°¿â - ʵÓð¸Àý¼¯
- * =============================================================================
- * ±¾Îļþչʾ¸ü¸´ÔÓ¡¢¶à±äµÄ function Ó÷¨£¬°üÀ¨£º
- * 1. ±Õ°üÓë˽ÓбäÁ¿
- * 2. ¸ß½×º¯ÊýÓ뺯Êý×éºÏ
- * 3. µÝ¹éÓë¼ÇÒ仯
- * 4. ¹¤³§Ä£Ê½Óë¹¹Ô캯Êý
- * 5. Òì²½´¦ÀíÓë»Øµ÷
- * 6. ×°ÊÎÆ÷ģʽ
- * 7. ¹Û²ìÕßģʽ
- * 8. Á´Ê½µ÷ÓÃ
- */
- // =============================================================================
- // 1. ±Õ°üÓë˽ÓбäÁ¿ - ´´½¨°²È«µÄ¼ÆÊýÆ÷
- // =============================================================================
- /**
- * ´´½¨°²È«¼ÆÊýÆ÷£¨Ê¹Óñհü±£»¤ÄÚ²¿×´Ì¬£©
- * @returns {Object} ¼ÆÊýÆ÷¶ÔÏó
- */
- function createSecureCounter() {
- var count = 0; // ˽ÓбäÁ¿
-
- return {
- increment: function() {
- count++;
- console.log('¼ÆÊýÆ÷Ôö¼Ó: ' + count);
- return count;
- },
- decrement: function() {
- if (count > 0) {
- count--;
- console.log('¼ÆÊýÆ÷¼õÉÙ: ' + count);
- } else {
- console.log('¼ÆÊýÆ÷ÒÑΪ×îСֵ');
- }
- return count;
- },
- getCount: function() {
- return count;
- },
- reset: function() {
- count = 0;
- console.log('¼ÆÊýÆ÷ÖØÖÃ');
- return count;
- }
- };
- }
- // =============================================================================
- // 2. ¸ß½×º¯Êý - º¯Êý×÷Ϊ²ÎÊýºÍ·µ»ØÖµ
- // =============================================================================
- /**
- * ͨÓÃÖØÊÔ»úÖÆ£¨¸ß½×º¯Êý£©
- * @param {Function} fn - ÒªÖ´Ðеĺ¯Êý
- * @param {number} maxRetries - ×î´óÖØÊÔ´ÎÊý
- * @param {number} delay - ÖØÊÔ¼ä¸ô(ºÁÃë)
- * @returns {*} º¯ÊýÖ´Ðнá¹û
- */
- function withRetry(fn, maxRetries, delay) {
- var attempts = 0;
-
- function execute() {
- attempts++;
- try {
- console.log('³¢ÊÔÖ´ÐÐµÚ ' + attempts + ' ´Î...');
- var result = fn();
- console.log('Ö´Ðгɹ¦£¡');
- return result;
- } catch (e) {
- console.log('Ö´ÐÐʧ°Ü: ' + e.message);
- if (attempts < maxRetries) {
- console.log(delay + 'ms ºóÖØÊÔ...');
- Sleeper.millisecond(delay);
- return execute();
- } else {
- throw new Error('´ïµ½×î´óÖØÊÔ´ÎÊý: ' + maxRetries);
- }
- }
- }
-
- return execute();
- }
- /**
- * º¯Êý×éºÏÆ÷£¨ÀàËÆÊýѧÖÐµÄ f(g(x))£©
- * @param {...Function} functions - Òª×éºÏµÄº¯ÊýÁбí
- * @returns {Function} ×éºÏºóµÄº¯Êý
- */
- function compose() {
- var funcs = Array.prototype.slice.call(arguments);
-
- return function(value) {
- var result = value;
- for (var i = funcs.length - 1; i >= 0; i--) {
- result = funcs[i](result);
- }
- return result;
- };
- }
- /**
- * ¹ÜµÀº¯Êý£¨´Ó×óµ½ÓÒÖ´ÐУ©
- * @param {...Function} functions - Òª¹ÜµÀµÄº¯ÊýÁбí
- * @returns {Function} ¹ÜµÀºóµÄº¯Êý
- */
- function pipe() {
- var funcs = Array.prototype.slice.call(arguments);
-
- return function(value) {
- var result = value;
- for (var i = 0; i < funcs.length; i++) {
- result = funcs[i](result);
- }
- return result;
- };
- }
- // =============================================================================
- // 3. µÝ¹éÓë¼ÇÒ仯 - ÓÅ»¯Öظ´¼ÆËã
- // =============================================================================
- /**
- * ´ø¼ÇÒ仯µÄì³²¨ÄÇÆõÊýÁмÆËã
- * @param {number} n - µÚn¸öì³²¨ÄÇÆõÊý
- * @returns {number} ì³²¨ÄÇÆõÊýÖµ
- */
- function fibonacciMemoized() {
- var cache = {}; // »º´æ¶ÔÏó
-
- function fib(n) {
- if (n in cache) {
- return cache[n];
- }
-
- if (n <= 1) {
- return n;
- }
-
- cache[n] = fib(n - 1) + fib(n - 2);
- return cache[n];
- }
-
- return fib;
- }
- /**
- * µÝ¹éĿ¼±éÀú£¨Ä£Ä⣩
- * @param {string} path - ·¾¶
- * @param {number} depth - µ±Ç°Éî¶È
- * @param {number} maxDepth - ×î´óÉî¶È
- */
- function traverseDirectory(path, depth, maxDepth) {
- if (depth > maxDepth) {
- return;
- }
-
- console.log(' '.repeat(depth) + '©À©¤©¤ ' + path);
-
- // Ä£Äâ×ÓĿ¼
- var subDirs = ['docs', 'src', 'config'];
- for (var i = 0; i < subDirs.length; i++) {
- traverseDirectory(path + '/' + subDirs[i], depth + 1, maxDepth);
- }
- }
- // =============================================================================
- // 4. ¹¤³§Ä£Ê½ - ¶¯Ì¬´´½¨¶ÔÏó
- // =============================================================================
- /**
- * UI×é¼þ¹¤³§
- * @returns {Object} ×é¼þ¹¤³§¶ÔÏó
- */
- function createUIFactory() {
- var components = {};
-
- return {
- /**
- * ×¢²á×é¼þÄ£°å
- * @param {string} name - ×é¼þÃû³Æ
- * @param {Function} template - ×é¼þÄ£°åº¯Êý
- */
- register: function(name, template) {
- components[name] = template;
- console.log('×é¼þ [' + name + '] ÒÑ×¢²á');
- },
-
- /**
- * ´´½¨×é¼þʵÀý
- * @param {string} name - ×é¼þÃû³Æ
- * @param {Object} options - ÅäÖÃÑ¡Ïî
- * @returns {Object} ×é¼þʵÀý
- */
- create: function(name, options) {
- if (!components[name]) {
- throw new Error('δÕÒµ½×é¼þ: ' + name);
- }
-
- console.log('´´½¨×é¼þ [' + name + ']');
- return components[name](options);
- },
-
- /**
- * »ñÈ¡ËùÓÐÒÑ×¢²á×é¼þ
- * @returns {Array} ×é¼þÃû³ÆÁбí
- */
- getRegisteredComponents: function() {
- return Object.keys(components);
- }
- };
- }
- /**
- * °´Å¥×é¼þÄ£°å
- * @param {Object} options - ÅäÖÃÑ¡Ïî
- * @returns {Object} °´Å¥¶ÔÏó
- */
- function buttonTemplate(options) {
- return {
- type: 'button',
- text: options.text || '°´Å¥',
- onClick: options.onClick || function() {},
- render: function() {
- console.log('[°´Å¥] ' + this.text);
- }
- };
- }
- /**
- * ÊäÈë¿ò×é¼þÄ£°å
- * @param {Object} options - ÅäÖÃÑ¡Ïî
- * @returns {Object} ÊäÈë¿ò¶ÔÏó
- */
- function inputTemplate(options) {
- return {
- type: 'input',
- placeholder: options.placeholder || 'ÇëÊäÈë...',
- value: '',
- onChange: options.onChange || function() {},
- render: function() {
- console.log('[ÊäÈë¿ò] ռλ·û: ' + this.placeholder);
- }
- };
- }
- // =============================================================================
- // 5. Òì²½´¦Àí - Ä£ÄâÒì²½²Ù×÷
- // =============================================================================
- /**
- * Òì²½ÈÎÎñ¹ÜÀíÆ÷
- * @returns {Object} ÈÎÎñ¹ÜÀíÆ÷
- */
- function createAsyncManager() {
- var tasks = [];
- var isRunning = false;
-
- return {
- /**
- * Ìí¼ÓÈÎÎñ
- * @param {Function} task - ÈÎÎñº¯Êý
- * @param {string} name - ÈÎÎñÃû³Æ
- */
- addTask: function(task, name) {
- tasks.push({
- func: task,
- name: name || ('Task_' + tasks.length),
- status: 'pending'
- });
- console.log('ÈÎÎñ [' + name + '] ÒÑÌí¼Ó');
- },
-
- /**
- * ˳ÐòÖ´ÐÐËùÓÐÈÎÎñ
- */
- runSequentially: function() {
- if (isRunning) {
- console.log('ÈÎÎñÕýÔÚÔËÐÐÖÐ...');
- return;
- }
-
- isRunning = true;
- console.log('========== ¿ªÊ¼Ë³ÐòÖ´ÐÐÈÎÎñ ==========');
-
- for (var i = 0; i < tasks.length; i++) {
- var task = tasks[i];
- console.log('Ö´ÐÐÈÎÎñ [' + task.name + '] (' + (i + 1) + '/' + tasks.length + ')');
-
- try {
- task.func();
- task.status = 'completed';
- console.log('✓ ÈÎÎñ [' + task.name + '] Íê³É');
- } catch (e) {
- task.status = 'failed';
- console.log('✗ ÈÎÎñ [' + task.name + '] ʧ°Ü: ' + e.message);
- }
-
- Sleeper.millisecond(500); // Ä£ÄâÑÓ³Ù
- }
-
- isRunning = false;
- console.log('========== ËùÓÐÈÎÎñÖ´ÐÐÍê±Ï ==========');
- },
-
- /**
- * »ñÈ¡ÈÎÎñ״̬
- * @returns {Array} ÈÎÎñ״̬Áбí
- */
- getStatus: function() {
- return tasks.map(function(task) {
- return {
- name: task.name,
- status: task.status
- };
- });
- }
- };
- }
- // =============================================================================
- // 6. ×°ÊÎÆ÷ģʽ - ÔöÇ¿º¯Êý¹¦ÄÜ
- // =============================================================================
- /**
- * ÈÕÖ¾×°ÊÎÆ÷
- * @param {Function} fn - Ôº¯Êý
- * @param {string} name - º¯ÊýÃû³Æ
- * @returns {Function} ×°ÊκóµÄº¯Êý
- */
- function withLogging(fn, name) {
- return function() {
- console.log('>>> µ÷Óú¯Êý: ' + name);
- console.log(' ²ÎÊý: ' + JSON.stringify(Array.prototype.slice.call(arguments)));
-
- var start = new Date().getTime();
- var result = fn.apply(this, arguments);
- var duration = new Date().getTime() - start;
-
- console.log('<<< º¯Êý ' + name + ' Ö´ÐÐÍê³É£¬ºÄʱ: ' + duration + 'ms');
- console.log(' ·µ»ØÖµ: ' + JSON.stringify(result));
-
- return result;
- };
- }
- /**
- * »º´æ×°ÊÎÆ÷
- * @param {Function} fn - Ôº¯Êý
- * @returns {Function} ´ø»º´æµÄº¯Êý
- */
- function withCaching(fn) {
- var cache = {};
-
- return function() {
- var key = JSON.stringify(Array.prototype.slice.call(arguments));
-
- if (key in cache) {
- console.log('ÃüÖлº´æ: ' + key);
- return cache[key];
- }
-
- console.log('¼ÆËã²¢»º´æ: ' + key);
- var result = fn.apply(this, arguments);
- cache[key] = result;
- return result;
- };
- }
- /**
- * ½ÚÁ÷×°ÊÎÆ÷
- * @param {Function} fn - Ôº¯Êý
- * @param {number} delay - ÑÓ³Ùʱ¼ä(ºÁÃë)
- * @returns {Function} ½ÚÁ÷ºóµÄº¯Êý
- */
- function throttle(fn, delay) {
- var lastCall = 0;
-
- return function() {
- var now = new Date().getTime();
- if (now - lastCall >= delay) {
- lastCall = now;
- return fn.apply(this, arguments);
- } else {
- console.log('½ÚÁ÷: ºöÂÔµ÷ÓÃ');
- }
- };
- }
- // =============================================================================
- // 7. ¹Û²ìÕßģʽ - ʼþϵͳ
- // =============================================================================
- /**
- * ´´½¨Ê¼þ×ÜÏß
- * @returns {Object} ʼþ×ÜÏß¶ÔÏó
- */
- function createEventBus() {
- var listeners = {};
-
- return {
- /**
- * ¶©ÔÄʼþ
- * @param {string} event - ʼþÃû³Æ
- * @param {Function} callback - »Øµ÷º¯Êý
- */
- on: function(event, callback) {
- if (!listeners[event]) {
- listeners[event] = [];
- }
- listeners[event].push(callback);
- console.log('¶©ÔÄʼþ: ' + event);
- },
-
- /**
- * È¡Ïû¶©ÔÄ
- * @param {string} event - ʼþÃû³Æ
- * @param {Function} callback - »Øµ÷º¯Êý
- */
- off: function(event, callback) {
- if (!listeners[event]) return;
-
- var index = listeners[event].indexOf(callback);
- if (index > -1) {
- listeners[event].splice(index, 1);
- console.log('È¡Ïû¶©ÔÄʼþ: ' + event);
- }
- },
-
- /**
- * ·¢²¼Ê¼þ
- * @param {string} event - ʼþÃû³Æ
- * @param {*} data - ʼþÊý¾Ý
- */
- emit: function(event, data) {
- if (!listeners[event]) {
- console.log('ÎÞ¼àÌýÕß: ' + event);
- return;
- }
-
- console.log('·¢²¼Ê¼þ: ' + event);
- listeners[event].forEach(function(callback) {
- try {
- callback(data);
- } catch (e) {
- console.log('ʼþ»Øµ÷´íÎó: ' + e.message);
- }
- });
- },
-
- /**
- * Ò»´ÎÐÔ¶©ÔÄ
- * @param {string} event - ʼþÃû³Æ
- * @param {Function} callback - »Øµ÷º¯Êý
- */
- once: function(event, callback) {
- var self = this;
- var wrapper = function(data) {
- callback(data);
- self.off(event, wrapper);
- };
- this.on(event, wrapper);
- }
- };
- }
- // =============================================================================
- // 8. Á´Ê½µ÷Óà - Á÷³©API
- // =============================================================================
- /**
- * ´´½¨×Ö·û´®´¦ÀíÆ÷£¨Ö§³ÖÁ´Ê½µ÷Óã©
- * @param {string} str - ³õʼ×Ö·û´®
- * @returns {Object} ´¦ÀíÆ÷¶ÔÏó
- */
- function createStringProcessor(str) {
- var value = str || '';
-
- return {
- /**
- * ת´óд
- * @returns {Object} ×ÔÉí£¨Ö§³ÖÁ´Ê½µ÷Óã©
- */
- toUpperCase: function() {
- value = value.toUpperCase();
- return this;
- },
-
- /**
- * תСд
- * @returns {Object} ×ÔÉí
- */
- toLowerCase: function() {
- value = value.toLowerCase();
- return this;
- },
-
- /**
- * È¥³ý¿Õ¸ñ
- * @returns {Object} ×ÔÉí
- */
- trim: function() {
- value = value.trim();
- return this;
- },
-
- /**
- * Ìæ»»Îı¾
- * @param {string} search - ËÑË÷Îı¾
- * @param {string} replace - Ìæ»»Îı¾
- * @returns {Object} ×ÔÉí
- */
- replace: function(search, replace) {
- value = value.replace(new RegExp(search, 'g'), replace);
- return this;
- },
-
- /**
- * ×·¼ÓÎı¾
- * @param {string} text - ×·¼ÓÎı¾
- * @returns {Object} ×ÔÉí
- */
- append: function(text) {
- value += text;
- return this;
- },
-
- /**
- * prepend Îı¾
- * @param {string} text - ǰÖÃÎı¾
- * @returns {Object} ×ÔÉí
- */
- prepend: function(text) {
- value = text + value;
- return this;
- },
-
- /**
- * »ñÈ¡½á¹û
- * @returns {string} ´¦ÀíºóµÄ×Ö·û´®
- */
- getResult: function() {
- return value;
- },
-
- /**
- * ´òÓ¡½á¹û
- * @returns {Object} ×ÔÉí
- */
- log: function() {
- console.log('µ±Ç°Öµ: "' + value + '"');
- return this;
- }
- };
- }
- // =============================================================================
- // ¹¤¾ßº¯Êý
- // =============================================================================
- /**
- * ÑÓ³Ù¹¤¾ßº¯Êý
- */
- var Sleeper = {
- millisecond: function(ms) {
- var start = new Date().getTime();
- while (new Date().getTime() - start < ms) {
- // µÈ´ý
- }
- },
- second: function(seconds) {
- this.millisecond(seconds * 1000);
- }
- };
- /**
- * µ¹¼ÆÊ±ÏÔʾº¯Êý
- * @param {number} seconds - µ¹¼ÆÊ±ÃëÊý
- * @param {string} prefix - ǰ׺Îı¾
- */
- function countdown(seconds, prefix) {
- prefix = prefix || 'µÈ´ý';
- for (var i = seconds; i > 0; i--) {
- console.log(prefix + '... ' + i + 'Ãë');
- Sleeper.second(1);
- }
- console.log(prefix + '... ¿ªÊ¼£¡');
- Sleeper.millisecond(500); // ¶ÌÔÝÍ£¶Ù
- }
- // =============================================================================
- // ÑÝʾº¯Êý
- // =============================================================================
- /**
- * ÑÝʾ1: ±Õ°ü¼ÆÊýÆ÷
- */
- function demoClosure() {
- countdown(2, '¡¾ÑÝʾ1¡¿¼´½«¿ªÊ¼');
- console.log('========== ÑÝʾ1: ±Õ°ü¼ÆÊýÆ÷ ==========');
-
- var counter = createSecureCounter();
- counter.increment();
- counter.increment();
- counter.increment();
- console.log('µ±Ç°¼ÆÊý: ' + counter.getCount());
- counter.decrement();
- counter.reset();
-
- console.log('');
- }
- /**
- * ÑÝʾ2: ¸ß½×º¯Êý
- */
- function demoHigherOrder() {
- countdown(2, '¡¾ÑÝʾ2¡¿¼´½«¿ªÊ¼');
- console.log('========== ÑÝʾ2: ¸ß½×º¯Êý ==========');
-
- // ÖØÊÔ»úÖÆ
- var successCount = 0;
- var retryResult = withRetry(function() {
- successCount++;
- if (successCount < 3) {
- throw new Error('Ä£Äâʧ°Ü');
- }
- return '³É¹¦!';
- }, 5, 100);
- console.log('ÖØÊÔ½á¹û: ' + retryResult);
-
- // º¯Êý×éºÏ
- var addOne = function(x) { return x + 1; };
- var multiplyTwo = function(x) { return x * 2; };
- var composed = compose(multiplyTwo, addOne);
- console.log('×éºÏº¯Êý½á¹û (ÏÈ+1ÔÙ*2): ' + composed(5)); // (5+1)*2 = 12
-
- // ¹ÜµÀ
- var piped = pipe(addOne, multiplyTwo);
- console.log('¹ÜµÀº¯Êý½á¹û (ÏÈ+1ÔÙ*2): ' + piped(5)); // (5+1)*2 = 12
-
- console.log('');
- }
- /**
- * ÑÝʾ3: µÝ¹éÓë¼ÇÒ仯
- */
- function demoRecursion() {
- countdown(2, '¡¾ÑÝʾ3¡¿¼´½«¿ªÊ¼');
- console.log('========== ÑÝʾ3: µÝ¹éÓë¼ÇÒ仯 ==========');
-
- var fib = fibonacciMemoized();
- console.log('ì³²¨ÄÇÆõÊýÁÐǰ10Ïî:');
- for (var i = 0; i < 10; i++) {
- console.log(' F(' + i + ') = ' + fib(i));
- }
-
- console.log('\nĿ¼±éÀúʾÀý:');
- traverseDirectory('root', 0, 2);
-
- console.log('');
- }
- /**
- * ÑÝʾ4: ¹¤³§Ä£Ê½
- */
- function demoFactory() {
- countdown(2, '¡¾ÑÝʾ4¡¿¼´½«¿ªÊ¼');
- console.log('========== ÑÝʾ4: ¹¤³§Ä£Ê½ ==========');
-
- var factory = createUIFactory();
- factory.register('button', buttonTemplate);
- factory.register('input', inputTemplate);
-
- var btn = factory.create('button', {
- text: 'Ìá½»',
- onClick: function() { console.log('°´Å¥±»µã»÷'); }
- });
- btn.render();
-
- var inp = factory.create('input', {
- placeholder: 'ÇëÊäÈëÓû§Ãû'
- });
- inp.render();
-
- console.log('ÒÑ×¢²á×é¼þ: ' + factory.getRegisteredComponents().join(', '));
-
- console.log('');
- }
- /**
- * ÑÝʾ5: Òì²½ÈÎÎñ¹ÜÀí
- */
- function demoAsync() {
- countdown(2, '¡¾ÑÝʾ5¡¿¼´½«¿ªÊ¼');
- console.log('========== ÑÝʾ5: Òì²½ÈÎÎñ¹ÜÀí ==========');
-
- var manager = createAsyncManager();
-
- manager.addTask(function() {
- console.log(' ÈÎÎñ1: ³õʼ»¯Êý¾Ý');
- }, '³õʼ»¯');
-
- manager.addTask(function() {
- console.log(' ÈÎÎñ2: ¼ÓÔØÅäÖÃ');
- }, '¼ÓÔØÅäÖÃ');
-
- manager.addTask(function() {
- console.log(' ÈÎÎñ3: Á¬½Ó·þÎñÆ÷');
- }, 'Á¬½Ó·þÎñÆ÷');
-
- manager.runSequentially();
-
- var status = manager.getStatus();
- console.log('ÈÎÎñ״̬:');
- status.forEach(function(s) {
- console.log(' ' + s.name + ': ' + s.status);
- });
-
- console.log('');
- }
- /**
- * ÑÝʾ6: ×°ÊÎÆ÷ģʽ
- */
- function demoDecorator() {
- countdown(2, '¡¾ÑÝʾ6¡¿¼´½«¿ªÊ¼');
- console.log('========== ÑÝʾ6: ×°ÊÎÆ÷ģʽ ==========');
-
- // ÈÕÖ¾×°ÊÎ
- var originalFunc = function(a, b) {
- return a + b;
- };
- var loggedFunc = withLogging(originalFunc, '¼Ó·¨º¯Êý');
- var result = loggedFunc(10, 20);
- console.log('½á¹û: ' + result);
-
- // »º´æ×°ÊÎ
- var expensiveCalc = function(n) {
- Sleeper.millisecond(100); // Ä£ÄâºÄʱ¼ÆËã
- return n * n;
- };
- var cachedCalc = withCaching(expensiveCalc);
-
- console.log('µÚÒ»´Îµ÷ÓÃ:');
- cachedCalc(5);
- console.log('µÚ¶þ´Îµ÷Óã¨Ó¦ÃüÖлº´æ£©:');
- cachedCalc(5);
-
- console.log('');
- }
- /**
- * ÑÝʾ7: ¹Û²ìÕßģʽ
- */
- function demoObserver() {
- countdown(2, '¡¾ÑÝʾ7¡¿¼´½«¿ªÊ¼');
- console.log('========== ÑÝʾ7: ¹Û²ìÕßģʽ ==========');
-
- var bus = createEventBus();
-
- // ¶©ÔÄʼþ
- bus.on('dataUpdate', function(data) {
- console.log(' ¼àÌýÕß1ÊÕµ½Êý¾Ý: ' + JSON.stringify(data));
- });
-
- bus.on('dataUpdate', function(data) {
- console.log(' ¼àÌýÕß2ÊÕµ½Êý¾Ý: ' + JSON.stringify(data));
- });
-
- // Ò»´ÎÐÔ¶©ÔÄ
- bus.once('onceEvent', function(data) {
- console.log(' Ò»´ÎÐÔ¼àÌýÕßÊÕµ½: ' + data);
- });
-
- // ·¢²¼Ê¼þ
- bus.emit('dataUpdate', { value: 100, timestamp: new Date().getTime() });
- bus.emit('onceEvent', '²âÊÔÊý¾Ý');
- bus.emit('onceEvent', 'Ôٴδ¥·¢£¨Ó¦¸ÃÎÞÏìÓ¦£©');
-
- console.log('');
- }
- /**
- * ÑÝʾ8: Á´Ê½µ÷ÓÃ
- */
- function demoChaining() {
- countdown(2, '¡¾ÑÝʾ8¡¿¼´½«¿ªÊ¼');
- console.log('========== ÑÝʾ8: Á´Ê½µ÷Óà ==========');
-
- var result = createStringProcessor(' hello world ')
- .trim()
- .toUpperCase()
- .replace('WORLD', 'AIWROK')
- .append(' - »¶ÓʹÓÃ')
- .prepend('¡¾')
- .append('¡¿')
- .log()
- .getResult();
-
- console.log('×îÖÕ½á¹û: ' + result);
-
- console.log('');
- }
- /**
- * Ö÷º¯Êý - ÔËÐÐËùÓÐÑÝʾ
- */
- function main() {
- console.log('========================================');
- console.log(' AIWROK ¸ß¼¶º¯Êý·â×°¿â - ʵÓð¸Àý¼¯');
- console.log('========================================');
- console.log('');
-
- countdown(2, '³ÌÐòÆô¶¯');
-
- demoClosure();
-
- demoHigherOrder();
-
- demoRecursion();
-
- demoFactory();
-
- demoAsync();
-
- demoDecorator();
-
- demoObserver();
-
- demoChaining();
-
- console.log('========================================');
- console.log(' ËùÓÐÑÝʾÒÑÍê³É£¡');
- console.log('========================================');
- }
- // Ö´ÐÐÖ÷º¯Êý
- main();
¸´ÖÆ´úÂë
|
|