<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)航:
     
    主站蜘蛛池模板: 亚洲一级特黄特黄的大片| 国产偷v国产偷v亚洲高清| 国产免费一区二区视频| 亚洲av无码兔费综合| 国产又大又粗又硬又长免费| 国产精品亚洲va在线观看| 亚洲第一成年人网站| 最近2019中文字幕免费看最新| 亚洲av纯肉无码精品动漫| 亚洲精品国产专区91在线| 亚洲乱亚洲乱妇无码麻豆| 99精品视频免费观看| 九九视频高清视频免费观看 | 色哟哟国产精品免费观看| 中文字幕亚洲码在线| 亚洲综合男人的天堂色婷婷| 亚洲av伊人久久综合密臀性色 | 精品亚洲AV无码一区二区三区| 国产亚洲AV无码AV男人的天堂| 亚洲国产精品成人久久蜜臀 | 玖玖在线免费视频| 黄床大片免费30分钟国产精品| 亚洲AV无码成人精品区天堂| 精品亚洲一区二区三区在线观看| 99久久久国产精品免费牛牛| 一区二区三区无码视频免费福利 | 国产亚洲精品xxx| 日本亚洲国产一区二区三区| 1000部拍拍拍18勿入免费凤凰福利 | 亚洲av永久无码一区二区三区| 77777午夜亚洲| 亚洲一区在线免费观看| 亚洲中文无码线在线观看| 亚洲人成电影网站| 亚洲国产中文在线二区三区免| 亚洲成人在线免费观看| 国产成人亚洲合集青青草原精品| 亚洲va在线va天堂成人| 亚洲欧洲无码一区二区三区| 亚洲国产美女精品久久久| MM1313亚洲精品无码久久|