给类型增加方法

---恢复内容开始---

在js开发过程中,有时候我们需要一些特定的方法,但是语言本身并没有提供.比如,去掉字符串两头的空格,给一个数字取整(这个有parseInt()和Math对象的方法).这时候我们怎样做才能让开发变得简单一些呢?

举个例子:给字符串去掉首位的空格.也就是让所有的字符串的原型拥有一个trim方法,可以这样做:

String.prototype.trim=function(){

  return this.replace(/^\s+|\s+$/g,‘‘);

}

这样我们在String的原型上添加了一个trim方法,所有的字符串对象立刻i就可以调用此方法,完成去除首尾空格的任务.

var str=‘    ‘+‘abc‘+‘    ‘;

console.log(str.length);
str=str.trim();

console.log(str.length);

再举个例子,我们想给所有的数字类型增加一个取整的方法(忽略小数点后的数字),怎么办?也很简单

Number.prototype.getInt=function(){
    return this>0?Math.floor(this):Math.ceil(this);
}

---恢复内容结束---

在js开发过程中,有时候我们需要一些特定的方法,但是语言本身并没有提供.比如,去掉字符串两头的空格,给一个数字取整(这个有parseInt()和Math对象的方法).这时候我们怎样做才能让开发变得简单一些呢?

举个例子:给字符串去掉首位的空格.也就是让所有的字符串的原型拥有一个trim方法,可以这样做:

String.prototype.trim=function(){

  return this.replace(/^\s+|\s+$/g,‘‘);

}

这样我们在String的原型上添加了一个trim方法,所有的字符串对象立刻i就可以调用此方法,完成去除首尾空格的任务.

var str=‘    ‘+‘abc‘+‘    ‘;

console.log(str.length);
str=str.trim();

console.log(str.length);

再举个例子,我们想给所有的数字类型增加一个取整的方法(忽略小数点后的数字),怎么办?也很简单

Number.prototype.getInt=function(){
    return this>0?Math.floor(this):Math.ceil(this);
}
时间: 2024-10-12 20:12:13

给类型增加方法的相关文章

【Go语言】【4】GO语言类型和为类型增加方法

一.GO语言的类型 GO语言中内置了如下基础类型: 整型:byte(int8).int16.int.uint等 浮点型:float32.float64 复数类型:complex64.complex128 布尔类型:bool 字符类型:rune 字符串:string 错误类型:error 同时GO语言也支持下面的复合类型: 指针 数组 切片:slice 集合:map 通道:chan 结构体:struct 接口:interface 上看下看左看右看,怎么没有看到double类型呢?同时还有几个陌生的

《JavaScript语言精粹》读书笔记——给类型增加方法一节的疑问

最近,在学习<JavaScript语言精粹>这本书,发现译者虽然有很好地翻译文章,却没有对文中有疑问的地方进行改正或加以注释.我接触JavaScript只有一年左右,可能无法很好的理解这门语言,而今天,读到第四章中4.7节——给类型增加方法时遇到了疑问之处: 文中给出了对类型增加方法的示例: Function.prototype.method = function (name, func) { this.prototype[name] = func; return this; }; 这里的示例

【转】C#语言之“string格式的日期时间字符串转为DateTime类型”的方法

方法一:Convert.ToDateTime(string) string格式有要求,必须是yyyy-MM-dd hh:mm:ss ================================================ 方法二:Convert.ToDateTime(string, IFormatProvider) DateTime dt; DateTimeFormatInfo dtFormat = new System.GlobalizationDateTimeFormatInfo()

给特定的模块的类型增加编码规则

1.创建扩展数据类型. 例:BikeServiceOrderId 当然如果要给已经存在的扩展数据类型增加序列号分配的话,就不必增加了. 2.修改引用类中LoadModule方法 例:NumberSeqReference_SalesOrder 当然如果要给其他模块的类型增加编码规则的话,就选名为_**的类. 修改LoadModule方法,增加如下代码: numRef.DataTypeId = typeId2ExtendedTypeId( typeid(BikeServiceOrderId)); n

C#原始类型扩展方法—this参数修饰符

扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型.扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用.对于用 C# 和 Visual Basic 编写的客户端代码,调用扩展方法与调用在类型中实际定义的方法之间没有明显的差异. 扩展方法被定义为静态方法,但它们是通过实例方法语法进行调用的.它们的第一个参数指定该方法作用于哪个类型,并且该参数以 this 修饰符为前缀.仅当您使用 using 指令将命名空间显式导入到源代码中之后,扩

ASP.NET MVC 此安装不支持该项目类型解决方法

http://www.cnblogs.com/younggun/archive/2011/03/03/1969498.html ASP.NET MVC  此安装不支持该项目类型解决方法 打开 .csproject 文件  在  <ProjectTypeGuids>中的三个GUID的前两个修改为: {F85E285D-A4E0-4152-9332-AB1D724D3325};{349c5851-65df-11da-9384-00065b846f21}; 后面还有一个 GUID 是你项目的GUID

深入.Net字符串类型 Join方法

.Net的字符串其实还是有很多东西可以写的.但是最近在学习SQL Server,只好先做下最近学习到的一些巧用,妙用之类的东西. 巧用String.Join拼接字串数组,字符串集合为字符串.如果在之前,一个foreach早就敲上去了.虽然效率差多,但是少了个foreach,还是美观不少的. class Program { static void Main(string[] args) { List<string> listStr = new List<string>(); list

软件测试的类型和方法

软件测试的类型和方法

Mockito对final类型和方法的支持(二):为什么在版本2.1之后支持final类型和方法及使用限制

p { margin-bottom: 0.1in; line-height: 120% } a:link { } 在第一部分中我们讲到Mockito使用cglib子类化来实现mocking,从而无法支持 mocking final 类型和方法.为了改变这种状况,Rafael Winterhalter在Mockito 2.1.0版本里创建了第二种 mock方法叫Inline mock maker. p { margin-bottom: 0.1in; line-height: 120% } code