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


Posted in Javascript onApril 12, 2007

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 相关文章推荐
来自chinaz的ajax获取评论代码
May 03 Javascript
jQuery Ajax 全解析
Feb 08 Javascript
javascript 复杂的嵌套环境中输出单引号和双引号
May 26 Javascript
JQUERY 浏览器判断实现函数
Aug 20 Javascript
基于jQuery实现图片的前进与后退功能
Apr 24 Javascript
jQuery动态添加、删除元素的方法
Jan 09 Javascript
jquery自定义插件结合baiduTemplate.js实现异步刷新(附源码)
Dec 22 Javascript
vue2项目使用sass的示例代码
Jun 28 Javascript
解决jquery有正确返回值但不执行success函数的问题
Aug 20 jQuery
webpack4.0 入门实践教程
Oct 08 Javascript
VeeValidate 的使用场景以及配置详解
Jan 11 Javascript
javascript实现评分功能
Jun 24 Javascript
讲两件事:1.this指针的用法小探. 2.ie的attachEvent和firefox的addEventListener在事件处理上的区别
Apr 12 #Javascript
ie 处理 gif动画 的onload 事件的一个 bug
Apr 12 #Javascript
无语,javascript居然支持中文(unicode)编程!
Apr 12 #Javascript
几个高效,简洁的字符处理函数
Apr 12 #Javascript
发两个小东西,ASP/PHP 学习工具。 用JavaScript写的
Apr 12 #Javascript
身份证号码前六位所代表的省,市,区, 以及地区编码下载
Apr 12 #Javascript
对google个性主页的拖拽效果的js的完整注释[转]
Apr 10 #Javascript
You might like
phpExcel导出大量数据出现内存溢出错误的解决方法
2013/02/28 PHP
PHP字符串比较函数strcmp()和strcasecmp()使用总结
2014/11/19 PHP
php+ajax 实现输入读取数据库显示匹配信息
2015/10/08 PHP
php命令行(cli)模式下报require 加载路径错误的解决方法
2015/11/23 PHP
PHP基于XMLWriter操作xml的方法分析
2017/07/17 PHP
javascript中兼容主流浏览器的动态生成iframe方法
2014/05/05 Javascript
一些老手都不一定知道的JavaScript技巧
2014/05/06 Javascript
jQuery.holdReady()使用方法
2014/05/20 Javascript
jQuery选择器全集详解
2014/11/24 Javascript
JavaScript 里的类数组对象
2015/04/08 Javascript
JavaScript的History API使搜索引擎抓取AJAX内容
2015/12/07 Javascript
Javascript中prototype的使用详解
2016/06/18 Javascript
js实现的页面加载完毕之前loading提示效果完整示例【附demo源码下载】
2016/08/02 Javascript
js中string和number类型互转换技巧(分享)
2016/11/28 Javascript
详解如何使用Vue2做服务端渲染
2017/03/29 Javascript
详解vue-admin和后端(flask)分离结合的例子
2018/02/12 Javascript
解决vue中post方式提交数据后台无法接收的问题
2018/08/11 Javascript
angular将html代码输出为内容的实例
2018/09/30 Javascript
vue项目配置同一局域网可使用ip访问的操作
2020/10/23 Javascript
vuex的数据渲染与修改浅析
2020/11/26 Vue.js
[02:51]DOTA2战队出征照拍摄花絮 TI3明星化身时尚男模
2013/07/22 DOTA
wxpython 学习笔记 第一天
2009/02/09 Python
Python基于列表list实现的CRUD操作功能示例
2018/01/05 Python
从运行效率与开发效率比较Python和C++
2018/12/14 Python
python学生管理系统开发
2019/01/30 Python
Python面向对象之继承和多态用法分析
2019/06/08 Python
如何利用python给图片添加半透明水印
2019/09/06 Python
在python中logger setlevel没有生效的解决
2020/02/21 Python
Docker如何部署Python项目的实现详解
2020/10/26 Python
Python暴力破解Mysql数据的示例
2020/11/09 Python
12个不为大家熟知的HTML5设计小技巧
2016/06/02 HTML / CSS
董事长职责范文
2013/11/08 职场文书
高二英语教学反思
2014/01/19 职场文书
写给老师的表扬信
2014/01/21 职场文书
宝宝满月祝酒词
2015/08/10 职场文书
求职自我评价参考范文
2019/05/16 职场文书