詭異的JavaScript

這兩天都在研究google旗下某個網站的JavaScript,發現JavaScript還真是詭異。撇開google變數、function名稱亂取、完全沒排版的影響,真的是看到會頭昏 @_@

幾個新發現的JavaScript的特點:

  • 要定義一個新class可以用function去定義,其實function本身就是一個物件…
  • 可以隨時給class的instance一個新的property,定義沒寫沒關係,自己加在new出來的instance就好了,這樣變成每個Instance的property可以是百百種,於是code看一看還要想一想這個property是原本就有的還是新加進去的…
  • 可以隨時給任何物件新的member function,包括Intrinsic Object。如果嫌String沒有isDigit之類的function,自己寫一個加進去就好了
  • obj.propertyA和obj[‘propertyA’]是一樣的
  • 不想為只用到一次的class另外寫一個的話可以這樣寫:

    var obj={
    “propertyA”:null,
    “methodA”:new Function()
    };

    於是這個object就有了propertyA和methodA兩個member(是叫member嗎?)(OS:那幹嘛不直接寫obj.propertyA=ooxx和obj.prototype.methodA=new Function()就好了…)

不過也是看了這些東西之後才知道原本自己所知道的JavaScript內容還真是少的可以,看看別的code是會增長見聞的。但是這次扣掉一些只有一行的function,光250行就可以看個兩天才看的懂,那我看以後還是少看一點好了 orz

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *