2012-09-15 58 views
0

所以,我正在寫一個新的JavaScript算法,代號爲jBam(JavaScript瀏覽器算法模塊),它用於編寫一個非常簡單的方法來檢測瀏覽器它的版本。我的主要目標,是能夠寫這個(與庫插入):

書寫Javascript算法,但我需要將符號轉換爲實際的字

if(IE & version lessThan 9) { 
    // IE code for 8 and below 
} 

眼下,進展會很不錯。我可以寫

if(browser == IE & version < 9) 

所以,回到我原來的問題,我想知道的是,也許好歹設置變量lessThan並設置它等於符號<的唯一的事。我試過可能是最常見的補救方法(var lessThan = <),但當然,這太過於一廂情願,而且有點太過簡單。而且,衆所周知,也不例外,簡單。任何建議,也許我沒有想到的JavaScript保留?

+0

不可能。爲什麼不直接使用''符號?它更乾淨,佔用更少的字節。 – JCOC611

+0

類似的問題已經回答了http://stackoverflow.com/questions/8539027/alias-javascript-keywords –

+0

@SandeepGB這真的不需要處理OP的問題。他們真的在談論改變/別名操作符,而不是保留關鍵字... – Ian

回答

1

我同意@ JCOC611,但它也有可能是你使所有對象的一部分,然後使version對象作爲一個屬性,在那裏你可以添加一個方法稱爲lessThan,所以你會有類似的東西:

var browserStuff = { 
    browser: { 
     value: "", 
     is: function (comparator) { 
      if (browserStuff.browser.value == comparator) { 
       return true; 
      } 
      return false; 
     } 
    }, 
    version: { 
     value: "", 
     lessThan: function (comparator) { 
      if (browserStuff.version.value < comparator) { 
       return true; 
      } 
      return false; 
     } 
    }, 
    init: function() { 
     // Do your stuff to determine the browser and its version 
     // You need to set browserStuff.version.value and browserStuff.browser.value 
     delete browserStuff.init; 
    } 
}.init(); 

,然後用它喜歡:

if (browserStuff.browser.is("IE")) { 

} 

if (browserStuff.version.lessThan("7")) { 

} 

你必須爲「大於」和「不等於」等等添加更多的東西,但是這只是爲了啓動它。

我並不完全暗示這一點,因爲您可以輕鬆地使用普通的Javascript運算符來完成冗餘代碼相同的事情。該解決方案更適合「可讀」的主題,但絕不是必需或更好。

+0

謝謝你們的答案... @ JCOC611我想用lte,lt,gte,gt和equalto,而不是用<=, <, > =,>和==,因爲它更簡單,我會寫這個「圖書館「(我想你可以稱它)爲客戶。而bfavaretto--我使用&代替&&,因爲它的工作原理更簡單,所需時間更少。 ianpgall感謝你,但我已經寫了一個非常有效的算法,我覺得它很簡單。感謝大家的意見! --decotton – ModernDesigner

+0

@ user1672778沒問題!那麼我猜這個簡單而直接的答案是,你不能將'<'等改成單詞或其他任何東西 – Ian

相關問題