色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

使用prototype.js 的時候應(yīng)該特別注意的幾個問題.

1. String.prototype.camelize    BUG
這個方法用來返回字符串的駱駝寫法。用js 控制元素的 style的時候經(jīng)常使用
比如 
var ss="font-color"  
ss=ss.camelize()    // fontColor
通常情況下 camelize 會工作得很好,但是有一個特列,那就是浮動定位  float
var ss="float"  
obj.style[ss.camelize()]="right" // 這將導(dǎo)致一個錯誤。
 顯然,作者沒有考慮 float這種特殊情況,正確的寫法是: 
ie:   obj.style.styleFloat="right"
ff:   obj.style.cssFloat="right"
2. String.prototype.inspect   BUG
這里 inspect 方法是有Bug的, 作者用replace 方法的時候沒有用正則,導(dǎo)致只能替換掉第一個匹配的字符。
正確的寫法應(yīng)該這樣
  inspect: function() {
    return "'" + this.replace(////g, '////').replace(/"/g, '///"') + "'";
  }
3. Array.prototype.all   BUG
 這個方法檢測是否數(shù)組中所有元素都能夠讓迭代函數(shù)為真。 如果全部能滿足,則返回true,否則返回false
var f=function(x){return x%2==0}  //檢查一個數(shù)是否是偶數(shù)
var arr=[2,4,6]
alert (arr.all(f)==true)   //顯示 true
但是當  arr為空的時候,仍然返回 true
var arr=[]
alert(arr.all(f)==true)   //顯示true
4.  Array.prototype.any  BUG
同 all方法,對空數(shù)組仍然返回true
5.Array.prototype.detect  也就是 find方法
這個不是 Bug ,但是不看原代碼很容易讓人誤解,從而出錯。
這個方法查找第一個能滿足 迭代函數(shù) 的元素,最后返回元素的值
誤解一:
   var f=function(x){return x%2==0}  //檢測是否是偶數(shù)
   var arr=[1,3,5,7]    //故意定義一個全為奇數(shù)的數(shù)組。
   alert(arr.find(f)==false)   //false 
   //很多人誤以為 find 函數(shù)在找不到滿足條件的元素的時候會返回 false ,實際上,它返回的是 "undefined"
誤解二:
   尋找數(shù)組中的數(shù)字元素
   var f=function(x){return !isNaN(x) && typeof(x)==="number"}
   var arr=[false,"go_rush",0,"阿舜"]
   if (arr.find(f)) alert("數(shù)組中含有數(shù)字元素")     //事實上 這個 alert永遠不會執(zhí)行。
因為 find方法返回的是第一個符合條件的值。  這里返回:0.  所以.....

6. 對hash 對象的處理需要格外小心的地方
var hash={member:1,test:2,ids:3}
alert(hash.member)
alert($H(hash).inspect())
alert($H(hash).toQueryString())
//hash.member實際是存在的  但是.inspect() 和 .toQueryString()卻當它不存在
同樣下面這些屬性也會和 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

JavaScript技術(shù)使用prototype.js 的時候應(yīng)該特別注意的幾個問題.,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 宁波市| 白玉县| 光泽县| 稻城县| 定南县| 水城县| 化隆| 长治市| 宁德市| 逊克县| 呼伦贝尔市| 宁津县| 镇雄县| 阳高县| 海原县| 苍梧县| 张北县| 玉溪市| 斗六市| 平塘县| 明星| 东阿县| 湘潭市| 沐川县| 辽阳县| 合肥市| 东平县| 微山县| 方山县| 盐边县| 高邮市| 蒙城县| 宜川县| 德清县| 牙克石市| 漳平市| 嘉祥县| 内乡县| 尉犁县| 珠海市| 鹿泉市|