當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
用JavaScript实现的设计模式之commandline(命令行)模式
生活随笔
收集整理的這篇文章主要介紹了
用JavaScript实现的设计模式之commandline(命令行)模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用Commandline設計模式之前的源代碼:
<html> <script>// Priority: ActiveX > HTML5 > Flash > Form(default) function isActiveXSupported(){//...return false; }function isHTML5Supported(){//...return false; }function isFlashSupported(){//...return false; }var uploadAPI; if ( isActiveXSupported()) {// lots of initialization workuploadAPI = { "name": "ActiveX"}; } else if( isHTML5Supported()) {// lots of initialization workuploadAPI = { "name": "HTML5"}; } else if( isFlashSupported()) {// lots of initialization workuploadAPI = { "name": "Flash"}; } else {// lots of initialization workuploadAPI = { "name": "Form"}; }console.log(uploadAPI);</script> </html>我們可以使用CommandLine設計模式,將這些冗長的IF-ELSE語句消除:
commandline命令行模式的JavaScript實現版本:
<html> <script>Function.prototype.after = function( func ){var _self = this;return function() {var ret = _self.apply( this, arguments );if ( ret ) {return ret;}return func.apply( this, arguments);} }// Priority: ActiveX > HTML5 > Flash > Form(default) var getActiveX = function() {try {// lots of initialization worka();return { "name": "ActiveX"};}catch (e) {// user broswer does not support ActiveXreturn null;} }var getHTML5 = function() {try {// lots of initialization workreturn { "name": "HTML5"};}catch (e) {// user broswer does not support HTML5return null;} }var getFlash = function() {try {// lots of initialization workreturn { "name": "Flash"};}catch (e) {// user broswer does not support Flashreturn null;} }var getForm = function() {return { "name": "Form"}; }var uploadAPI = getActiveX.after(getHTML5).after(getFlash).after(getForm)();console.log(uploadAPI);</script> </html>總結
以上是生活随笔為你收集整理的用JavaScript实现的设计模式之commandline(命令行)模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 世界首颗 5G 卫星上天,由 Space
- 下一篇: 五一假期不怕排队!百度地图上线排队雷达: