javascript通过prototype属性扩充String功能

String.length

作用:这实际上是 String 类的一个属性,但是由于 JavaScript 将全角、半角均视为是一个字符,在一些实际运用中可能会造成一定的问题,现在我们通过 prototype 来弥补这部不足。

实现方法:

String.prototype.cnLength = function(){
    var arr=this.match(/[^\x00-\xff]/ig);
    return this.length+(arr==null?0:arr.length);
  }

试验:alert("EaseWe空间Spaces".cnLength()) -> 显示 16

这里用到了一些正则表达式的方法和全角字符的编码原理。

Date.DayDiff()

作用:计算出两个日期型变量的间隔时间(年、月、日、周)

实现方法:

Date.prototype.DayDiff = function(cDate,mode){
    try{
      cDate.getYear();
    }catch(e){
      return(0);
    }
    var base =60*60*24*1000;
    var result = Math.abs(this - cDate);
    switch(mode){
      case "y":
        result/=base*365;
        break;
      case "m":
        result/=base*365/12;
        break;
      case "w":
        result/=base*7;
        break;
      default:
        result/=base;
        break;
    }
    return(Math.floor(result));
  }

试验:alert((new Date()).DayDiff((new Date(2002,0,1)))) -> 显示 329

alert((new Date()).DayDiff((new Date(2002,0,1)),"m")) -> 显示 10

当然,也可以进一步扩充,得出响应的小时、分钟,甚至是秒。

时间: 2024-12-03 01:47:35

javascript通过prototype属性扩充String功能的相关文章

Javascript中prototype属性实现给内置对象添加新的方法

  本文实例讲述了Javascript中prototype属性实现给内置对象添加新的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" con

Javascript中prototype属性实现给内置对象添加新的方法_javascript技巧

本文实例讲述了Javascript中prototype属性实现给内置对象添加新的方法.分享给大家供大家参考.具体实现方法如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>prototype

javascript中的prototype属性使用说明(函数功能扩展)_javascript技巧

这是一个比较特殊的属性,Javascript中的继承一般都依赖这属性实现. 在Javascript中,一切都是对象,字符串是对象,数组是对象,变量是对象,函数也是对象,所以才会允许['a','b','c'].push('d');这样的操作存在.类本身也是一个对象,也可以定义属性和方法: 复制代码 代码如下: function Test(){}; Test.str = 'str'; Test.fun = function(){return 'fun';}; var r1 = Test.str; /

Javascript中prototype属性使用用法详解

首先,我们要先了解一下类的概念,JavaScript 本身是一种面向对象的语言,它所涉及的元素根据其属性的不同都依附于某一个特定的类.我们所常见的类包括:数组变量(Array).逻辑变量(Boolean).日期变量(Date).结构变量(Function).数值变量(Number).对象变量(Object).字符串变量(String) 等,而相关的类的方法,也是程序员经常用到的(在这里要区分一下类的注意和属性发方法),例如数组的push方法.日期的get系列方法.字符串的split方法等等. 但

JavaScript:prototype属性使用方法

参考:http://bokee.shinylife.net/blog/article.asp?id=455http://dev.csdn.net/article/84222.shtmhttp://www.cnblogs.com/goody9807/archive/2007/04/16/715109.html 一.基本使用方法       prototype属性可算是JavaScript与其他面向对象语言的一大不同之处. 简而言之,prototype就是"一个给类的对象添加方法的方法",

理解JavaScript的prototype属性_javascript技巧

其实,关于prototype只要几句话就可以总结: 任何原型都是对象,只有对象有原型 只有Function有prototype属性,它是这个Function作为构造器时生成对象所继承的原型.Function的原型和它的prototype属性无关 对象的原型可以通过非标准的属性 __proto__ 或ECMAScript5的方法 Object.getPrototypeOf() 访问. 1其实是错的,Object这个原型链尽头的对象它没有原型.可是为了更简单表述.在看原型链后你就会明白.toStri

了解JavaScript中对象的prototype属性

一.什么是JavaScript中对象的prototype属性 JavaScript中对象的prototype属性,是用来返回对象类型原型的引用的.我们使用prototype属性提供对象的类的一组基本功能.并且对象的新实例会"继承"赋予该对象原型的操作.但是这个prototype到底是怎么实现和被管理的呢?对于对象的prototype属性的说明,JavaScript手册上如是说:所有 JavaScript内部对象都有只读的 prototype 属性.可以向其原型中动态添加功能(属性和方法

JavaScript---网络编程(3)-Object、String、Array对象和prototype属性

本节学习JavaScript的对象和方法(函数)~ Object 对象 提供所有 JScript 对象通用的功能. obj = new Object([value]) 参数 obj 必选项.要赋值为 Object 对象的变量名. value 可选项.任意一种 JScript 基本数据类型.(Number.Boolean.或 String.)如果 value 为一个对象,返回不作改动的该对象.如果 value 为 null.undefined,或者没有给出,则产生没有内容的对象. 说明 Objec

JavaScript通过prototype给对象定义属性用法实例

 这篇文章主要介绍了JavaScript通过prototype给对象定义属性用法,实例分析了prototype的功能及使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了JavaScript通过prototype给对象定义属性的用法.分享给大家供大家参考.具体分析如下: 下面的JS代码定义了movie对象.在使用对象的过程中又通过prototype给对象添加了isComedy属性,调用的时候直接使用object.isComedy即可,非常方便. ? 1 2 3 4 5 6