作家
登录

使用prototype.js 的时候应该特别注意的几个问题.

作者: 来源:www.28hudong.com 2013-03-30 03:32:29 阅读 我要评论

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

  推荐阅读

  用javascript实现的图片马赛克后显示并切换加文字功能

<script language="JavaScript1.1"> var slidespeed=3000 var slideimages=new Array("http://www.blueidea.com/articleimg/upload/2006/3/5/2482150_1_7.jpg","http://www.blueidea.com/articleimg/upload/2006/3>>>详细阅读


本文标题:使用prototype.js 的时候应该特别注意的几个问题.

地址:http://www.17bianji.com/kaifa2/JS/30578.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)