• EXT核心API详解(二)Array/Date/Function/Number/String


    Array类
    indexOf( Object o ) : Number
    object是否在数组中,找不到返回-1;找到返回位置
    remove( Object o ) : Array
    从数组中删除指定的对象object,如果找不到object则数组无变化

    Number类
    constrain( Number min, Number max ) : Number
    检查数值是否介于min与max之间, 如果大于max 返回max,如果小于min返回min, 否则返回当前值

    String类
    escape( String string ) : String
    将string中的'和\替换为\' \\

    format( String string, String value1, String value2 ) : String
    格式化字符串,例:
    var cls = 'my-class', text = 'Some text';
    var s = String.format('<div class="{0}">{1}</div>', cls, text);// 结果 <div class="my-class">Some text</div>

    leftPad( String string, Number size, [String char] ) : String
    以char将string补齐为size长度,char默认定义空格

    toggle( String value, String other ) : String
    交换值,如果当前值等于value,则被赋值other,反之等于value,例:
    sort = sort.toggle('ASC', 'DESC');

    trim() : String
    去除开头或结尾多余的空格


    Date类
    Date.parseDate( String input, String format ) : Date
    将字符串string依指定的格式format转换为时间,其中格式定义详见format方法
    例:dt = Date.parseDate("2006-01-15 3:20:01 PM", "Y-m-d h:i:s A" );


    add( String interval, Number value ) : Date
    增加时间段,String interval在Data类中已定义
    Date.MILLI = "ms";
    Date.SECOND = "s";
    Date.MINUTE = "mi";
    Date.HOUR = "h";
    Date.DAY = "d";
    Date.MONTH = "mo";
    Date.YEAR = "y";
    例var dt2 = new Date('10/1/2006').add(Date.DAY, -5);

    between( Date start, Date end ) : Boolean
    是否在两个指定的时间之间

    clearTime( Boolean clone ) : Date
    清除时间信息,如果clone为真,则克隆自已并返回新Date,本身的值并不改变,反之则修改自身的值

    clone() : Date
    克隆

    format( String format ) : String
    格式化时间
    d     两位数的日期                01 至 31
    D     三字母的星期名                Mon 至 Sun
    j     一位数的日期                1 至 31
    l     完整的星期名                Sunday 至 Saturday
    S     日期的英文顺序刻词尾,两个字符        st, nd, rd or th.
    w     一周中的第几天                0 (星期天) 至 6 (星期六)
    z     一年中的第几天                0 至 364 (闰年365 )
    W     ISO-8601 星期数, 周一算一个星期的开始    1 至 53
    F     月的完整英文名                January 至 December
    m     月,以0前导                01 至 12
    M     三字母的简写月名                Jan 至 Dec
    n     月                    1 至 12
    t     本月有多少天                28 至 31
    L     是否闰年                    1/0
    Y     完整的年份                例: 1999 或 2003
    y     年的后两位                例: 99 或 03
    a     上午/下午小写                am 或 pm
    A     上午/下午大写                AM 或 PM
    g     小时/12小时制                1 至 12
    G     小时/24小时制                0 至 23
    h     小时/12小时制                01 至 12
    H     小时/24小时制                00 至 23
    i     分钟                    00 至 59
    s     秒                    00 至 59
    u     毫秒                    001 至 999
    O     时区,与格林威治标准时间之差        例: +0200
    T     时区简写                    例: EST, MDT ...
    Z     时区间距                    -43200 至 50400
    其中Date类内置了几种格式
    Date.patterns = {
        ISO8601Long:"Y-m-d H:i:s",
        ISO8601Short:"Y-m-d",
        ShortDate: "n/j/Y",
        LongDate: "l, F d, Y",
        FullDateTime: "l, F d, Y g:i:s A",
        MonthDay: "F d",
        ShortTime: "g:i A",
        LongTime: "g:i:s A",
        SortableDateTime: "Y-m-d\\TH:i:s",
        UniversalSortableDateTime: "Y-m-d H:i:sO",
        YearMonth: "F, Y"
    };
    当然ISO8601Long和ISO8601Short还是非常招人喜欢的
    例:
    dt.format(Date.patterns.ISO8601Long);
    dt.format('Y-m-d H:i:s');
     
    getDayOfYear() : Number
    一年中的第几天,从0开始

    getDaysInMonth() : Number
    本月有多少天,

    getElapsed( [Date date] ) : Number
    当前日期对象与date之间相差的毫秒数

    getFirstDateOfMonth() : Date
    本月的第一天

    getFirstDayOfMonth() : Number
    本月第一天是星期几

    getGMTOffset() : String
    时区信息(见格式定义中的'O')
    getFirstDateOfMonth() : Date
    本月最后一天
     
    getFirstDayOfMonth() : Number
    本月最后一天是星期几

    getSuffix() : String
    日期后导符(见格式定义中的S)

    getTimezone() : String
    时区(见T)

    getWeekOfYear() : Number
    一年中的第几周(见W)

    isLeapYear() : Boolean
    是否闰年


    Function类
    createCallback(/*args...*/) : Function
    创建回叫方法

    createDelegate( [Object obj], [Array args], [Boolean/Number appendArgs] ) :
    创建委托
    这两个记法除了传参方式不同,看不出有什么差异都是调用method.apply,createCallback可以看作一个简化版的createDelegate
    createCallback==>return method.apply(window, args);
    createDelegate==>return method.apply(obj || window, callArgs);
    前者参数比较简单,直接传过去了,后者的规则比较复杂点,如果appendArgs为真,args将附加在参数列表之后,如果是数值,args将在参数列表的appendargs位置插入,其它情况下原参将不起作用
    例:
    var fn = func1.createDelegate(scope, [arg1,arg2], true) 
    //fn(a,b,c) === scope.func1(a,b,c,arg1,arg2); 
    var fn = func1.createDelegate(scope, [arg1,arg2]) 
    //fn(a,b,c) === scope.func1(arg1,arg2); 
    var fn = func1.createDelegate(scope, [arg1,arg2], 1) 
    //fn(a,b,c) === scope.func1(a,arg1,arg2,b,c); 
    var fn = func1.createCallback(arg1, arg2); 
    //fn() === func1(arg1, arg2) 


    createCallback : function(/*args...*/) 


    createInterceptor( Function fcn, [Object scope] ) : Function
    创建阻断方法,如果fcn返回false,原方法将不会被执行

    createSequence( Function fcn, [Object scope] ) : Function
    创建组合方法,执行原方法+fcn

    defer( Number millis, [Object obj], [Array args], [Boolean/Number appendArgs] ):Number
    定时执行,隔millis毫秒后执行原方法

     

    发表于 @ 2007年11月24日 17:30:00|评论(3 )|编辑

    旧一篇: EXT核心API详解(一)-Ext

    免费做项目,满意后试用!
    传智播客 免费做项目,满意后试用!
    专家课堂:工作流之JBPM项目实作
    传智播客 专家课堂:工作流之JBPM项目实作

    评论

    #wangxin0072000 发表于2007-12-06 11:33:01  IP: 203.86.61.*
    后续能不能增加一些如何扩展Ext组件的文章。
    另外,对于这一篇中最后章节中关于如何创建回调函数还是不太明白,能提供一些例子吗?
    #blackant2 发表于2007-12-07 09:59:31  IP: 59.173.7.*
    //首先谢谢你对本blog的关心,感动中,半年来第一个
    //言归正传,首先来看看 createCallback/createDelegate的实现,都很简单
    //核心的都只有一句return method.apply(window, args);
    //和 return method.apply(obj || window, callArgs);
    createCallback : function(/*args...*/){
    // make args available, in function below
    var args = arguments;
    var method = this;
    return function() {
    return method.apply(window, args);
    };
    },

    createDelegate : function(obj, args, appendArgs){
    var method = this;
    return function() {
    var callArgs = args || arguments;
    if(appendArgs === true){
    callArgs = Array.prototype.slice.call(arguments, 0);
    callArgs = callArgs.concat(args);
    }else if(typeof appendArgs == "number"){
    callArgs = Array.prototype.slice.call(arguments, 0); // copy arguments first
    var applyArgs = [appendArgs, 0].concat(args); // create method call params
    Array.prototype.splice.apply(callArgs, applyArgs); // splice them in
    }
    return method.apply(obj || window, callArgs);
    };
    },

    //从上面我们看出,它的功能很简单一点的说就是做一件本来不能做到的事情
    //当然自己无力完成所以委托给别人来做,我们再来看看简单的应用
    Ext.onReady(function(){
    Ext.QuickTips.init()
    var myclass=new Object();
    #blackant2 发表于2007-12-07 10:00:39  IP: 59.173.7.*
    //不好意思,一次帖不远,再来一次
    //从上面我们看出,它的功能很简单一点的说就是做一件本来不能做到的事情
    //当然自己无力完成所以委托给别人来做,我们再来看看简单的应用
    Ext.onReady(function(){
    Ext.QuickTips.init()
    var myclass=new Object();
    //myclass并没有alert方法,我们也不打算为它写一个alert方法
    //我们希望它和window.alert有一样的行为,所以我们委托window来做
    myclass.alert=window.alert.createDelegate(window);
    //我们还希望他有个更漂亮的show方法和Ext.MessageBox的show功能一样
    //所以我们又得委托给Ext.MessageBox来做这事了
    myclass.show=Ext.MessageBox.show.createDelegate(Ext.MessageBox);
    //我们的myclass也有alert和show方法了
    myclass.alert('alert1');
    myclass.show({title:'title',msg:'message'});
    });
  • 相关阅读:
    云计算和大数据时代网络技术揭秘(八)数据中心存储FCoE
    云计算和大数据时代网络技术揭秘(七)大二层网络
    云计算和大数据时代网络技术揭秘(六)LISP协议
    云计算和大数据时代网络技术揭秘(五)可靠的网络
    云计算和大数据时代网络技术揭秘(四)网络加密
    云计算和大数据时代网络技术揭秘(三)安全的网络准入
    python3练习100题——027
    python3练习100题——026
    python3练习100题——025
    python3练习100题--024
  • 原文地址:https://www.cnblogs.com/meetrice/p/1206041.html
Copyright © 2020-2023  润新知