<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    關(guān)注技術(shù),關(guān)注生活

    任何事情只要開始去做,永遠(yuǎn)不會(huì)太遲。
    posts - 5, comments - 23, trackbacks - 0, articles - 18
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    今天自己也發(fā)現(xiàn)了prototype的一個(gè)定位的bug。

    轉(zhuǎn)自:http://www.cnblogs.com/ashun/archive/2006/12/08/prototype-js-bug.html

    1. String.prototype.camelize&nbsp;&nbsp;&nbsp; BUG

    這個(gè)方法用來返回字符串的駱駝寫法。用js 控制元素的 style的時(shí)候經(jīng)常使用
    比如

    var &nbsp;ss = &quot; font-color &quot; &nbsp;&nbsp;
    ss
    = ss.camelize()&nbsp;&nbsp;&nbsp;&nbsp; // &nbsp;fontColor

    通常情況下 camelize 會(huì)工作得很好,但是有一個(gè)特列,那就是浮動(dòng)定位&nbsp; float

    var &nbsp;ss = &quot; float &quot; &nbsp;&nbsp;
    obj.style[ss.camelize()]
    = &quot; right &quot; &nbsp; // &nbsp;這將導(dǎo)致一個(gè)錯(cuò)誤。

    顯然,作者沒有考慮 float這種特殊情況,正確的寫法是:&nbsp;

    ie:&nbsp;&nbsp;&nbsp;obj.style.styleFloat = &quot; right &quot;
    ff:&nbsp;&nbsp;&nbsp;obj.style.cssFloat
    = &quot; right &quot;


    2. String.prototype.inspect&nbsp;&nbsp; BUG

    這里&nbsp;inspect&nbsp;方法是有Bug的,&nbsp;作者用replace&nbsp;方法的時(shí)候沒有用正則,導(dǎo)致只能替換掉第一個(gè)匹配的字符。

    正確的寫法應(yīng)該這樣
    &nbsp;&nbsp;inspect:&nbsp;function()&nbsp;{
    &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;&quot;'&quot;&nbsp;+&nbsp;this.replace(/\\/g,&nbsp;'\\\\').replace(/&quot;/g,&nbsp;'\\\&quot;')&nbsp;+&nbsp;&quot;'&quot;;
    &nbsp;&nbsp;}

    3. Array.prototype.all&nbsp;&nbsp; BUG
    &nbsp;這個(gè)方法檢測(cè)是否數(shù)組中所有元素都能夠讓迭代函數(shù)為真。 如果全部能滿足,則返回true,否則返回false

    var &nbsp;f = function (x){ return &nbsp;x % 2 == 0 }&nbsp;&nbsp; // 檢查一個(gè)數(shù)是否是偶數(shù)
    var &nbsp;arr = [ 2 , 4 , 6 ]
    alert&nbsp;(arr.all(f)
    == true )&nbsp;&nbsp;&nbsp; // 顯示&nbsp;true

    但是當(dāng)&nbsp; arr為空的時(shí)候,仍然返回 true

    var &nbsp;arr = []
    alert(arr.all(f)
    == true )&nbsp;&nbsp;&nbsp; // 顯示true


    4.&nbsp; Array.prototype.any&nbsp;&nbsp;BUG
    同 all方法,對(duì)空數(shù)組仍然返回true

    5.Array.prototype.detect&nbsp; 也就是 find方法
    這個(gè)不是 Bug ,但是不看原代碼很容易讓人誤解,從而出錯(cuò)。
    這個(gè)方法查找第一個(gè)能滿足 迭代函數(shù) 的元素,最后返回元素的值
    誤解一:

    &nbsp;&nbsp;&nbsp; var &nbsp;f = function (x){ return &nbsp;x % 2 == 0 }&nbsp;&nbsp; // 檢測(cè)是否是偶數(shù)
    &nbsp;&nbsp;&nbsp; var &nbsp;arr = [ 1 , 3 , 5 , 7 ]&nbsp;&nbsp;&nbsp;&nbsp; // 故意定義一個(gè)全為奇數(shù)的數(shù)組。
    &nbsp;&nbsp;&nbsp;alert(arr.find(f) == false )&nbsp;&nbsp;&nbsp; // false&nbsp;
    &nbsp;&nbsp;&nbsp; // 很多人誤以為&nbsp;find&nbsp;函數(shù)在找不到滿足條件的元素的時(shí)候會(huì)返回&nbsp;false&nbsp;,實(shí)際上,它返回的是&nbsp;&quot;undefined&quot;

    誤解二:
    &nbsp;&nbsp; 尋找數(shù)組中的數(shù)字元素

    &nbsp;&nbsp;&nbsp; var &nbsp;f = function (x){ return &nbsp; ! isNaN(x)&nbsp; &amp;&amp; &nbsp; typeof (x) === &quot; number &quot; }
    &nbsp;&nbsp;&nbsp;
    var &nbsp;arr = [ false , &quot; go_rush &quot; , 0 , &quot; 阿舜 &quot; ]
    &nbsp;&nbsp;&nbsp;
    if &nbsp;(arr.find(f))&nbsp;alert( &quot; 數(shù)組中含有數(shù)字元素 &quot; )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 事實(shí)上&nbsp;這個(gè)&nbsp;alert永遠(yuǎn)不會(huì)執(zhí)行。

    因?yàn)?find方法返回的是第一個(gè)符合條件的值。&nbsp; 這里返回:0.&nbsp; 所以.....


    6. 對(duì)hash 對(duì)象的處理需要格外小心的地方

    var &nbsp;hash = {member: 1 ,test: 2 ,ids: 3 }
    alert(hash.member)
    alert($H(hash).inspect())
    alert($H(hash).toQueryString())
    // hash.member實(shí)際是存在的&nbsp;&nbsp;但是.inspect()&nbsp;和&nbsp;.toQueryString()卻當(dāng)它不存在

    同樣下面這些屬性也會(huì)和 prototype.js 相沖突。

    each, all, any, collect, detect, findAll, grep, include, inject, invoke, max, min,
    partition, pluck, reject, sortBy, toArray, zip, inspect, map, find, select, member, entries

    http://community.csdn.net/Expert/topic/4964/4964523.xml?temp=4.314822E-02


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 日韩视频在线观看免费| 福利免费在线观看| 精品亚洲av无码一区二区柚蜜| 亚洲国产成a人v在线观看| 亚洲最大av资源站无码av网址| 欧美亚洲国产SUV| 无码av免费一区二区三区| 全免费a级毛片免费看无码| 亚洲精品国产自在久久| 久久精品国产69国产精品亚洲| 久久久久亚洲AV成人片| 亚洲国产精品成人AV在线 | 国产免费变态视频网址网站| 久久精品亚洲综合| 精品亚洲国产成人av| 亚洲av片一区二区三区| 亚洲偷自精品三十六区| 免费黄色网址入口| 一级做a爱过程免费视| 无码专区永久免费AV网站| 亚洲午夜福利精品无码| 亚洲综合在线一区二区三区| 国产成人一区二区三区免费视频| 亚洲精品国产专区91在线| 国产成人免费ā片在线观看老同学 | 中文字幕在线免费看线人| 日韩免费高清视频网站| 亚洲国产亚洲综合在线尤物| 天黑黑影院在线观看视频高清免费| 久久精品国产亚洲麻豆| 18女人水真多免费高清毛片| 亚洲日韩精品无码一区二区三区| 亚洲AV无码一区二区三区网址| 亚洲第一黄片大全| 美女免费视频一区二区三区| 九九九精品成人免费视频| 亚洲日本国产精华液| 国产成人精品免费视频动漫| 亚洲av日韩av无码| 日韩精品极品视频在线观看免费| 亚洲成AV人片在线观看无码|