天天看點

Prototype1.5.1源代碼解讀分析-5

< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd>

Abstract源代碼

var Abstract = new Object();

代碼解析及其使用方法

Abstract(抽象類)是個空類,沒有任何成員。

Object.extend源代碼

Object.extend = function(destination, source) {

  for (var property in source) {

    destination[property] = source[property];

  }

  return destination;

}

Object.extend(Object, {

  inspect: function(object) {

    try {

      if (object === undefined) return 'undefined';

      if (object === null) return 'null';

      return object.inspect ? object.inspect() : object.toString();

    } catch (e) {

      if (e instanceof RangeError) return '...';

      throw e;

    }

  },

  toJSON: function(object) {

    var type = typeof object;

    switch(type) {

      case 'undefined':

      case 'function':

      case 'unknown': return;

      case 'boolean': return object.toString();

    if (object === null) return 'null';

    if (object.toJSON) return object.toJSON();

    if (object.ownerDocument === document) return;

    var results = [];

    for (var property in object) {

      var value = Object.toJSON(object[property]);

      if (value !== undefined)

        results.push(property.toJSON() + ': ' + value);

    return '{' + results.join(', ') + '}';

  keys: function(object) {

    var keys = [];

    for (var property in object)

      keys.push(property);

    return keys;

  values: function(object) {

    var values = [];

      values.push(object[property]);

    return values;

  clone: function(object) {

    return Object.extend({}, object);

});

本文轉自 netcorner 部落格園部落格,原文連結:http://www.cnblogs.com/netcorner/archive/2007/08/16/2912303.html  ,如需轉載請自行聯系原作者

繼續閱讀