时间:2021-05-25
1.String.prototype.camelizeBUG
这个方法用来返回字符串的骆驼写法。用js控制元素的style的时候经常使用
比如
varss="font-color"
ss=ss.camelize()//fontColor
通常情况下camelize会工作得很好,但是有一个特列,那就是浮动定位float
varss="float"
obj.style[ss.camelize()]="right"//这将导致一个错误。
显然,作者没有考虑float这种特殊情况,正确的写法是:
ie:obj.style.styleFloat="right"
ff:obj.style.cssFloat="right"
2.String.prototype.inspectBUG
这里inspect方法是有Bug的,作者用replace方法的时候没有用正则,导致只能替换掉第一个匹配的字符。
正确的写法应该这样
inspect:function(){
return"'"+this.replace(/\\/g,'\\\\').replace(/"/g,'\\\"')+"'";
}
3.Array.prototype.allBUG
这个方法检测是否数组中所有元素都能够让迭代函数为真。如果全部能满足,则返回true,否则返回false
varf=function(x){returnx%2==0}//检查一个数是否是偶数
vararr=[2,4,6]
alert(arr.all(f)==true)//显示true
但是当arr为空的时候,仍然返回true
vararr=[]
alert(arr.all(f)==true)//显示true
4.Array.prototype.anyBUG
同all方法,对空数组仍然返回true
5.Array.prototype.detect也就是find方法
这个不是Bug,但是不看原代码很容易让人误解,从而出错。
这个方法查找第一个能满足迭代函数的元素,最后返回元素的值
误解一:
varf=function(x){returnx%2==0}//检测是否是偶数
vararr=[1,3,5,7]//故意定义一个全为奇数的数组。
alert(arr.find(f)==false)//false
//很多人误以为find函数在找不到满足条件的元素的时候会返回false,实际上,它返回的是"undefined"
误解二:
寻找数组中的数字元素
varf=function(x){return!isNaN(x)&&typeof(x)==="number"}
vararr=[false,"go_rush",0,"阿舜"]
if(arr.find(f))alert("数组中含有数字元素")//事实上这个alert永远不会执行。
因为find方法返回的是第一个符合条件的值。这里返回:0.所以.....
6.对hash对象的处理需要格外小心的地方
varhash={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
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
6、Prototype.js的写类方式复制代码代码如下://prototype.js中的代码varClass={create:function(){return
说到js的面向对象,就不得不提到prototype这个js内置属性了(注意:这里的prototype可不是prototype.js),它的作用就是可以动态的向一
使用prototype.js这个js库,这个在网上一搜就能找到了,是一个开源的js函数库。看到今天贴了几个联动菜单的帖子这个应该大家都有各自比较好的代码了我也顺
主要集合了我写js时一些常用的方法,并参考了prototype.js,jquery,google,百度,有啊等框架。工具库已经在近几个效果中使用:JavaScr
参照prototype.js中getElementsByClassName的思想,扩展出几种在DEOM操作中可经常用到的获取对象的方法,使用获取对象变得更方便、