时间:2021-05-25
YAHOO.lang=YAHOO.lang||{
isArray:function(o){
if(o){
varl=YAHOO.lang;
//如果该对象有length这个属性,同时支持splice方法,
//那么就认为它为数组。
returnl.isNumber(o.length)&&l.isFunction(o.splice);
}
returnfalse;
},
isBoolean:function(o){
returntypeofo==='boolean';
},
isFunction:function(o){
returntypeofo==='function';
},
isNull:function(o){
returno===null;
},
isNumber:function(o){
returntypeofo==='number'&&isFinite(o);
},
isObject:function(o){
return(o&&(typeofo==='object'||
YAHOO.lang.isFunction(o)))||false;
},
isString:function(o){
returntypeofo==='string';
},
isUndefined:function(o){
returntypeofo==='undefined';
},
//...
isValue:function(o){
//Infinityfails
//return(o||o===false||o===0||o==='');
varl=YAHOO.lang;
return(l.isObject(o)||l.isString(o)||
l.isNumber(o)||l.isBoolean(o));
}
};……复制粘贴分割线……
据悉,在YUI2.2.0版本以前,YAHOO.lang.isArray是这样写的。
isArray:function(obj){
//safari有bug,只好处理字符串
if(obj&&obj.constructor&&
obj.constructor.toString().indexOf('Array')>-1){
returntrue;
}else{
returnYAHOO.lang.isObject(obj)&&obj.constructor==Array;
}
},而这样的判断数组类型是有缺陷的,比如下面的代码
functionmyArray(){
this.name='name';
}
varo2=newmyArray();
alert(YAHOO.util.isArray(o2));//弹出true
//因为obj.constructor.toString()中包含myArray字样,所以返回true
functionObj(){
this.name='name';
}
varo=newObj();
o.constructor=Array;
alert(YAHOO.util.isArray(o));//弹出true
//因为在JavaScript里,constructor也是属性
//可以动态指定,所以返回true因此,在YUI的后续版本,YAHOO.lang.isArray被修改成了目前的这个样子
isArray:function(o){
if(o){
varl=YAHOO.lang;
//如果该对象有length这个属性,同时支持splice方法,
//那么就认为它为数组。
returnl.isNumber(o.length)&&l.isFunction(o.splice);
}
returnfalse;
},新的实现用了另外的思路:如果该对象有length这个属性,同时支持splice方法,那么就认为它为数组。当然,它依然有漏洞,我们仍然可以创建一个对象,使其拥有length属性和splice方法。但我觉得现在的实现更为合理,因为一来可能性不大,二来避免了诡异的浏览器的BUG。
再看YUI2.3.0后引入的YAHOO.lang.isValue,其实就是判断参数是否是一个有意义的值,只要参数不是null/undefined/NaN,那么都返回true。(注意这和一般的判断真假的不同就是,0/false/''(空字符串)这些都算是有效的值),所以YAHOO.lang.isValue非常适合用来判断表单域的值是否为有效值。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
提供的js,css压缩工具yuicompressor2.46打包简介官方网址:http://developer.yahoo.com/yui/compressor
在这里先要感谢yahoo的工程师们无私的将他们的成果奉献出来——yui(yahoo!ui)其实这是它自带的一个例子,我只是熟悉了一下,各种接口调用还是比较方便的
为了淘宝网店,婆婆居然要我和老公离婚,记得读书的时候我的日记,可是老师常常拿来读的范文.现在已经好久没有写日记了.也许还是老公偷看了我的日记,给我留下了这样的阴
花生仁日记是一款日常生活买东西服务项目手机软件,里边搜集了很多的特惠功能强大商品,还能协助你免费做代理。那花生仁日记如何免费做代理?花生仁日记推荐码多少钱呢?一
时不时的看下YUI的源码,总会有些收获.一.YUI中的源码'复制代码代码如下:vartoObject=function(a){varo={};for(vari=