js使用物件代替if和switch流程控制語句

antzone發表於2017-04-02

大家知道js中常用的流程控制語句是if語句或者switch語句,這裡不多介紹了,更多內容可以參閱相關閱讀。

(1).if語句可以參閱javascript的if語句一章節。

(2).switch語句可以參閱js switch一章節。

但是使用if語句進行流程控制的效率並不高,當然使用switch的效率也就更低了,不知道從哪看了一段話,有大神說,優秀的程式碼中是沒有if語句的,下面就介紹一下使用物件來實現if和switch語句的功能。

先看一段switch語句的程式碼例項:

[JavaScript] 純文字檢視 複製程式碼
function antzone(name) {
  switch (name) {
    case 'css':
      return 'css教程';
      break;
    case 'div':
      return 'div教程';
      break;
    case 'json':
      return 'json教程';
      break;
    default:
      return false;
      break;
  }
}
console.log(antzone("css"));

下面就使用物件方式對上面的程式碼進行一下改造,程式碼如下:

[JavaScript] 純文字檢視 複製程式碼
function antzone(name) {
  var names = {
    'css': function() {
      return 'css教程';
    },
    'div': function() {
      return 'div教程';
    },
    'json': function() {
      return 'json教程';
    }
  };
  if (typeof names[name] !== 'function') {
    return false;
  }
  return names[name]();
}
console.log(antzone("css"));

上面的程式碼同樣實現了我們的要求,但是效率會更高一些。

相關文章