zoukankan      html  css  js  c++  java
  • Prototype源码浅析——Date部分

    Date比较好理解,理解清楚了Number对象的toPaddedString方法就可以了。

    只有两个方法(toJSON和toISOString),而且这两个方法还一样,就是将日期转换为 JSON 字符串(遵循 ISO 格式)。

    代码很短,我直接贴上来:

        (function(proto) {
    function toISOString() {
    return this.getUTCFullYear() + '-' +
    (this.getUTCMonth() + 1).toPaddedString(2) + '-' +
    this.getUTCDate().toPaddedString(2) + 'T' +
    this.getUTCHours().toPaddedString(2) + ':' +
    this.getUTCMinutes().toPaddedString(2) + ':' +
    this.getUTCSeconds().toPaddedString(2) + 'Z';
    }
    function toJSON() {
    return this.toISOString();
    }
    if (!proto.toISOString){
    proto.toISOString = toISOString;
    }
    if (!proto.toJSON){
    proto.toJSON = toJSON;
    }

    })(Date.prototype);

    补充

      ISO8601提供了一种标准的交叉国家方法:一种由全面到具体的表达方法形成了一个日期的表达式,这种方法表示的日期非常容易推导,首先是年,接着是月然后是天,每个部分用连字符“-”分割。加上零,数字均是小于10的,将年份1之前的年用“0”表示,而0年以后的年份就用“-1”表示。因此,1998年3月30日就可以表示成:1998-03-30。

    W3C参考:http://www.w3.org/QA/Tips/iso-date

    小结

    到此为止,Prototype关于Javascript的语言核心扩展就算完了,Function,Object,Array,Hash,String,Number,Date,RegExp外加一个辅助对象Enumerable九个部分,这些部分内容(除了setTimeout以及setInterval外)不涉及任何DOM或者BOM的内容。

    后面的分析部分开始涉及到DOM处理和BOM部分,但是前面的语言核心是关键,也是Prototype最典型的特点,需注意。

    转载请注明来自小西山子【http://www.cnblogs.com/xesam/
    本文地址:http://www.cnblogs.com/xesam/archive/2012/02/03/2337117.html

  • 相关阅读:
    LeetCode
    LeetCode
    LeetCode
    位运算实现加法运算
    反转字符串
    数组中的逆序对
    矩阵中的路径
    机器人的运动范围
    滑动窗口的最大值
    HTML5全屏浏览器兼容方案
  • 原文地址:https://www.cnblogs.com/xesam/p/2337117.html
Copyright © 2011-2022 走看看