国产探花免费观看_亚洲丰满少妇自慰呻吟_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
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 株洲市| 山阳县| 桃江县| 福清市| 绥化市| 庐江县| 合江县| 元氏县| 武邑县| 沁阳市| 宝丰县| 桦川县| 麦盖提县| 阿鲁科尔沁旗| 兴安盟| 新巴尔虎右旗| 绍兴县| 同德县| 高尔夫| 陆丰市| 宜城市| 光泽县| 南涧| 颍上县| 石嘴山市| 忻城县| 岑巩县| 维西| 商城县| 大竹县| 杨浦区| 贵州省| 宜黄县| 略阳县| 分宜县| 洪湖市| 子长县| 永靖县| 安西县| 柳林县| 镇安县|