国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

使用prototype.js 的時候應該特別注意的幾個問題.

2019-11-21 02:08:56
字體:
來源:轉載
供稿:網友
1. String.prototype.camelize    BUG
這個方法用來返回字符串的駱駝寫法。用js 控制元素的 style的時候經常使用
比如 
var ss="font-color"  
ss=ss.camelize()    // fontColor
通常情況下 camelize 會工作得很好,但是有一個特列,那就是浮動定位  float
var ss="float"  
obj.style[ss.camelize()]="right" // 這將導致一個錯誤。
 顯然,作者沒有考慮 float這種特殊情況,正確的寫法是: 
ie:   obj.style.styleFloat="right"
ff:   obj.style.cssFloat="right"
2. String.prototype.inspect   BUG
這里 inspect 方法是有Bug的, 作者用replace 方法的時候沒有用正則,導致只能替換掉第一個匹配的字符。
正確的寫法應該這樣
  inspect: function() {
    return "'" + this.replace(////g, '////').replace(/"/g, '///"') + "'";
  }
3. Array.prototype.all   BUG
 這個方法檢測是否數組中所有元素都能夠讓迭代函數為真。 如果全部能滿足,則返回true,否則返回false
var f=function(x){return x%2==0}  //檢查一個數是否是偶數
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方法,對空數組仍然返回true
5.Array.prototype.detect  也就是 find方法
這個不是 Bug ,但是不看原代碼很容易讓人誤解,從而出錯。
這個方法查找第一個能滿足 迭代函數 的元素,最后返回元素的值
誤解一:
   var f=function(x){return x%2==0}  //檢測是否是偶數
   var arr=[1,3,5,7]    //故意定義一個全為奇數的數組。
   alert(arr.find(f)==false)   //false 
   //很多人誤以為 find 函數在找不到滿足條件的元素的時候會返回 false ,實際上,它返回的是 "undefined"
誤解二:
   尋找數組中的數字元素
   var f=function(x){return !isNaN(x) && typeof(x)==="number"}
   var arr=[false,"go_rush",0,"阿舜"]
   if (arr.find(f)) alert("數組中含有數字元素")     //事實上 這個 alert永遠不會執行。
因為 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
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 九龙县| 彩票| 杭锦后旗| 建阳市| 余姚市| 闽侯县| 南京市| 宣恩县| 黄骅市| 儋州市| 临夏市| 佛学| 和林格尔县| 即墨市| 吉安市| 新巴尔虎右旗| 彰化县| 夏邑县| 恭城| 普宁市| 双桥区| 固阳县| 宝兴县| 乌拉特中旗| 措勤县| 丹阳市| 阿图什市| 宣汉县| 潼南县| 屏南县| 和林格尔县| 赣榆县| 岫岩| 茶陵县| 嘉定区| 屯门区| 华池县| 徐汇区| 海门市| 怀仁县| 二连浩特市|