`
qinya06
  • 浏览: 584585 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ext 扩展

EXT 
阅读更多
ext 对js原生类型进行扩张,并为这些原生类型添加了附加功能,并没有修改类型中的缘由功能,

扩张Date  
getFirstDateInMonth() //当前月份第一天的日期
getLastDateofMonth()  //当前月份最后一天的日期

isLeapYear()          //是否闰年
getDayOfYear()        //当前日期是这一年的第几天
getDaysInMonth()      //获取当前日期是这一个月的第几天
getWeekOfYear()       //获取当前日期是这一年的第几周

add(String interval,Number value)
如: var dt=new Date('10/29/2009'.add(Date.DAY,5));
Date.HOUR,Date.MILLI,Date.MINUTE,Date.MONTH,Date.SECOND,Date.YEAR

between(Date start,Date end)  //判断日期变量在制定范围之内
getElapsed([Date date])     //获取日期变量与制定日期之间相差的毫秒数
parse('2008-07-24','Y-m-d');  //格式时间

扩展String
escape(String string) //对字符串中的"'"和"\"进行转移处理
format(String string , String value1, String value2) //第一个参数传递一个包含替换标识的字符串,后面的参数会根据替换标识放到指定的位置上
var cls='my-class',text='Some text';
var s=String.format('<div class="{0}">{1}</div>',cls,text);

leftPad(String string,Number size,[String char]); //保证string的长度不能小于size的值,。如果不够,就在左侧使用第三个参数char指定的字符补齐,
如:
  var s=String.leftPad('123',5,'0');
值为s='00123'

toggle(String value,String other) //如果当前字符串与第一个参数相同,就返回第二个参数,否则返回第一个参数
sort=sort.toggle('asc','DESC');
sort=(sort=='ASC'?'DESC':'ASC');
以上两条语句效果相同,当sort与'ASC'相同时就返回'DESC',否则返回'ASC'

trim()  //清空字符串两边空白

var s=' fooba  ';
alert('-' + s + '-'; 
alert('-" + s.trim() + '-');

扩展Number
constraint(Number min,Number max)
判断某个数字变量是否在我们设置的范围内。如果咱我们设置的范围内,就返回原值,否则返回靠近的边界
var num=50;
alert(num.constrain(0,100));  50
alert(num.constrain(60,100));  60
alert(num.constrain(0,40));  40

扩展Function
createCallBack()//创建当前函数的回调函数
var sayHi=function(name){
   alert('hi' +name);
}
new Ext.Button({
  text:'say hi',
  renderTo:Ext.getBody();
  handle:sayHI.createCallBack('qinya')
});
createCallBack()的作用就是原有的参数设置默认参数,  上面再使用createCallBack()时就已经将‘Fred’设置给对应的回调函数,单击按钮后就会将参数传递给sayHi()
createDeletegate([Object obj],[Array args],[Boolean/Number appendArgs]}//创建当前函数的代理函数
var sayHi=function(name){
   alert('hi' +name+'. you clicked+ the"'+this.text+'"button.');
}
var btn=new Ext.Button({
    text:'Say hi',
  renderTo:Ext.getBody()
});
btn.on('click',sayHi.createDeletegate(btn,['qinya']));
createDeletegate()主要改写this引用,上面第一个参数为btn,sayHi()函数中this.text会引用btn.text,获得其值'Say hi',如果我该btn为其他对象,sayHi()的this会自动指定对象的text属性
crateInterceptor(Function fcn,[Object scope])//为当前函数设置拦截器
var sayHi=function(name){
   alert('hi' +name);
}
sayHi('qinya');
var sayHiToFriend=sayHi.createInterceptor(function(name){
   return name=='Brain';
});
sayHiToFriend('qinya');  //没有提示
sayHiToFriend('Brain');  //提示"hi,Brain"
为sayHi()函数设置拦截器,只有拦截器返回为"true",才会执行sayHi()函数只有在'Brain'的情况下
createSequence(Function fcn,[Object scopt]),此函数会使参数fcn,和当前函数按顺序依次执行,
var sayHi=function(name){
   alert('hi' +name);
}
sayHi('qinya');
var sayGoodbye=sayHi.createSequence(function(name){
    alert('Bye,'+name);
});
sayGoodbye('qinya');
使用createSequence(),会先执行sayHi(),然后执行createSequence()中设置的函数
与createInterceptor()不同的是createSequence()的返回值不影响原函数的执行

扩展Array
为数组添加两个对象添加了两个函数:indexOf()和remove()
indexOf(Object o)首先检测传入的参数是否包含在数组中,如果o没有加入数组,返回-1;否则返回索引值,remove(Object o)如果还没有加入,就没有任何操作

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics