`
askme
  • 浏览: 57200 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

prototype-应用于javascript的内建对象

    博客分类:
  • Web
阅读更多
<一>简要
通过prototype你可以动态的为内建的javascript对象创建方法或者属性.

<二>描述

javascript内建的含有prototype属性的类有以下几种:
Object.prototype: 影响通过new Object(...)构造函数和object{...}创建的对象。更进一步,
所有内建的和用户自定义的并且继承自Object的类都会受到影响。

Array.prototype: 影响通过new Array(...)和[...]构建的数组对象。
String.prototype: 影响通过new String(...)和"..."构建的字符串对象。
Number.prototype: 影响通过new Number(...)和数字赋值构建的数字对象。
Date.prototype: 影响通过new Date(...)构建的日期对象。
Function.prototype:影响通过new Function(...)以及函数定义function(...){....}的函数对象。
RegExp.prototype: 影响通过new RegExp(...)以及/.../方式构建的正则表达式。
Boolean.prototype:布尔对象.

<三>例子:
1.数组为例:有些浏览器可能没有实现数组的分割功能slice(),那么我们通过prototype来实现:
//Only add this implementation if one does not already exist.
if (Array.prototype.slice==null) Array.prototype.slice=function(start,end){
   if (start<0) start=this.length+start; //'this' 指向类的实现对象
   if (end==null) end=this.length;
   else if (end<0) end=this.length+end;
   var newArray=[];
   for (var ct=0,i=start;i<end;i++) newArray[ct++]=this[i];
   return newArray;
}

2.日期为例:自定义日期的格式
Date.prototype.customFormat=function(formatString){
   var YYYY,YY,MMMM,MMM,MM,M,DDDD,DDD,DD,D,hhh,hh,h,mm,m,ss,s,ampm,dMod,th;
   YY = ((YYYY=this.getFullYear())+"").substr(2,2);
   MM = (M=this.getMonth()+1)<10?('0'+M):M;
   MMM = (MMMM=["January","February","March","April","May","June","July","August","September","October","November","December"][M-1]).substr(0,3);
   DD = (D=this.getDate())<10?('0'+D):D;
   DDD = (DDDD=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"][this.getDay()]).substr(0,3);
   th=(D>=10&&D<=20)?'th':((dMod=D%10)==1)?'st':(dMod==2)?'nd':(dMod==3)?'rd':'th';
   formatString = formatString.replace("#YYYY#",YYYY).replace("#YY#",YY).replace("#MMMM#",MMMM).replace("#MMM#",MMM).replace("#MM#",MM).replace("#M#",M).replace("#DDDD#",DDDD).replace("#DDD#",DDD).replace("#DD#",DD).replace("#D#",D).replace("#th#",th);

   h=(hhh=this.getHours());
   if (h==0) h=24;
   if (h>12) h-=12;
   hh = h<10?('0'+h):h;
   ampm=hhh<12?'am':'pm';
   mm=(m=this.getMinutes())<10?('0'+m):m;
   ss=(s=this.getSeconds())<10?('0'+s):s;
   return formatString.replace("#hhh#",hhh).replace("#hh#",hh).replace("#h#",h).replace("#mm#",mm).replace("#m#",m).replace("#ss#",ss).replace("#s#",s).replace("#ampm#",ampm);
}
var now=new Date();
alert("Today is "+now.customFormat('#DDDD#, #MMMM# #D##th#')+"\nThe time is "+now.customFormat('#h#:#mm##ampm#')+".");

2
1
分享到:
评论

相关推荐

    prototype-windows-javascript实现窗体.rar

    Prototype.js是一个广泛使用的JavaScript库,它提供了许多实用的功能,如对象扩展、DOM操作等,而Window.js则可能是一个专门用于创建和控制窗口效果的库或工具。 首先,Prototype.js的核心概念是增强JavaScript的...

    prototype-1.6.0.3.js+prototype1.4 、1.5中文手册+prototype1.6英文手册

    Prototype是JavaScript库,它为浏览器环境提供了强大的对象扩展和功能,尤其在处理DOM(文档对象模型)和Ajax交互时。这个压缩包包含了Prototype库的多个版本的手册和源代码文件,便于开发者理解和使用。 首先,...

    prototype-160-api.rar

    Prototype库是由Sam Stephenson开发的一个开源JavaScript框架,它通过扩展JavaScript的基本对象,如Array、String、Function等,提供了更丰富的功能和更简洁的语法。Prototype的主要目标是使JavaScript代码更加面向...

    prototype-1.4.0源码解读.js

    Prototype 通过`Object.extend`方法实现了对JavaScript原生对象的扩展。它允许开发者将一个对象的属性和方法复制到另一个对象上,增强了JavaScript的对象模型。此外,`Object.keys`方法用于获取对象的所有属性名,...

    Prototype-1.pdf

    - **响应处理**:Prototype将服务器响应封装在`Ajax.Response`对象中,特别是支持JSON格式的数据处理。 #### 三、Prototype框架的核心组件 - **Ajax.Request**:这是一个基本的Ajax请求组件,允许开发者发送异步...

    Prototype-v1.6.0使用手册

    Prototype是一款强大的JavaScript库,它为Web开发提供了丰富的功能,简化了DOM操作,增强了对象和数组的功能,并引入了AJAX交互的核心机制。Prototype-v1.6.0是该库的一个版本,包含了对之前版本的改进和优化,旨在...

    Prototype-1.6.0 中文版\英文版\Prototype.js

    6. **JSON支持**:Prototype包含了JSON(JavaScript Object Notation)解析和序列化功能,使得JavaScript对象与服务器端的数据交换变得更加便捷。 7. **动画效果**:Prototype还提供了简单的动画功能,如`Effect`...

    ember-disable-prototype-extensions-源码.rar

    Ember.js是一个流行的JavaScript框架,用于构建可维护的、高性能的Web应用。"ember-disable-prototype-...通过分析源码,我们可以更深入地理解JavaScript对象原型扩展的优缺点,以及在实际开发中如何做出明智的选择。

    js框架prototype-1.6.0.3.js

    Prototype是一个历史悠久且广泛使用的JavaScript框架,它为JavaScript编程引入了许多面向对象的特性,提高了开发效率。在本讨论中,我们将深入探讨Prototype框架的1.6.0.3版本及其API。 Prototype的核心理念是增强...

    prototype-1.5.0

    此外,`Object.clone()`可以创建一个对象的浅拷贝,而`Object.toJSON()`则将JavaScript对象转换为JSON字符串。 2. **数组操作**:Prototype增强了数组的处理能力,提供了如`Array.each()`用于遍历数组,`Array....

    prototype-1.6.0.2

    "Prototype JavaScript 框架是 Web 开发中的一个重要工具,尤其在 AJAX 应用程序的构建上发挥着关键作用。1.6.0.2 版本是 Prototype 的一个稳定版本,提供了许多改进和增强的功能,以提升开发效率和代码性能。 ...

    Prototype-1.6.0.2

    "Prototype-1.6.0.2" 是 Prototype JavaScript 框架的一个版本,这个框架在Web开发领域中被广泛使用,特别是在AJAX应用中。Prototype 提供了一系列强大的工具,帮助开发者更高效地操作和扩展JavaScript,使得在...

    prototype-1.6.0.3

    Prototype的核心特点在于其强大的对象扩展机制,使得JavaScript的面向对象编程变得更加简单。1.6.0.3版本可能包含了对这一机制的改进,使得开发者能更好地利用类、继承和模块化来组织代码。此外,Prototype还提供了...

    prototype-chm 操作手册

    同时,掌握Prototype库也有助于理解其他JavaScript库,比如jQuery,因为很多设计理念和模式是相通的。 总而言之,《prototype-chm 操作手册》是一份全面而深入的参考资料,无论是对新手还是有一定经验的开发者,都...

    prototype-AJAX案例

    在JavaScript的世界里,Prototype是一个非常著名的库,它扩展了JavaScript的基本对象,并且提供了一系列实用的函数,使得开发者在处理DOM操作、AJAX交互等方面的工作变得更加简单。本案例将重点探讨如何利用...

    prototype-1.4.0

    - **对象扩展**:Prototype 深度扩展了 JavaScript 的基础对象,如 Array、String、Function 和 Date,添加了丰富的实用方法。 - **DOM操作**:提供了一套强大的DOM(文档对象模型)操作接口,使得元素选择、创建...

    prototype-源码.rar

    - **对象操作**:Prototype 引入了类的概念,并提供了对象扩展、继承等机制,使得 JavaScript 具有了面向对象的能力。 3. **源码解析** - **Object.extend**:这是 Prototype 中的一个关键函数,用于对象的扩展,...

    prototype-1.6.0.2.js.rar

    它引入了类的概念,使得JavaScript具备了更接近于传统面向对象语言的特性。Prototype的核心组件包括: 1. **Object.extend**:用于扩展对象的属性和方法,这是Prototype实现继承的基础。 2. **Function.prototype....

    prototype-1.5.0框架.rar

    Prototype JavaScript 框架是早期 Web 开发中广泛使用的库,尤其在 Ajax 应用程序中,它极大地简化了 JavaScript 编程。标题中的 "prototype-1.5.0框架.rar" 指的是 Prototype 框架的一个特定版本,即 1.5.0 版本,...

    ProtoType-Demo.rar

    而阅读"prototype1.4开发手册.chm"将有助于深入理解ProtoType的用法和技巧,结合微软Ajax脚本库,可以构建更高效、交互性更强的Web应用。在实际工作中,开发者需要根据项目的具体需求和技术栈来决定是否同时使用这...

Global site tag (gtag.js) - Google Analytics