可以通过给Function.prototype增加方法来使得该方法对所有函数可用。

通过给Function.prototype增加一个method方法,下次给对象增加方法的时候就不必键入prototype这几个字符了。

  1. Function.prototype.method=function(name,func){
  2. this.prototype[name]=func;
  3. return this;
  4. }

一、JavaScript增加整数类型

JavaScript没有专门的整数类型,但有时候确实只需要提前数字中的整数部分。

可以给Number.prototype增加一个integer方法。

inter()方法根据数字的正负来判断是使用Math.ceiling还是Math.floor。

  1. Number.method('integer',function(){
  2. return Math[this<0?'ceil':'floor'](this);
  3. });
  4. document.writeln((-10/3).integer());//-3

二、JavaScript缺少一个移除字符串首尾空白的方法。

  1. String.method('trim',function(){
  2. return this.replace(/^\s+|\s+$/g,'');
  3. });
  4.  
  5. document.writeln(' " '+" neat ".trim() +' " ');//" neat "

基本类型的原型是公用结构,所以在类库混用时务必小心。一个保险的做法就是只在确定没有该方法时才添加它。

  1. Function.prototype.method=function(name,func){
  2. if(!this.prototype[name]){
  3. this.prototype[name]=func;
  4. }
  5. return this;
  6. }

new前缀去调用一个函数

  1. Function.method('new',function () {
  2. //创建一新对象,它继承自构造器函数的原型对象。
  3. var that=Object.create(this.prototype);
  4. //调用构造器函数,绑定-this-到新对象上。
  5. var other=this.apply(that,arguments);
  6. //如果它的返回值不是一个对象,就返回该对象。
  7. return (typeof other==='object'&&other)||that;
  8. });

superior

  1. Object.method('superior',function(name){ //传入方法名name
  2. var that=this,method=that[name];
  3. return function(){
  4. return method.apply(that,argumetns);
  5. }
  6. });

本文作者starof,因知识本身在变化,作者也在不断学习成长,文章内容也不定时更新,为避免误导读者,方便追根溯源,请诸位转载注明出处:http://www.cnblogs.com/starof/p/6510536.html有问题欢迎与我讨论,共同进步。

javascript扩充基本类型的功能的更多相关文章

  1. JavaScript 学习笔记: 扩充类型的功能

    JavaScript 是允许给基本类型扩充功能的.例如,可以通过对Object.prototype增加方法,可以让该方法对所有的对象都可用. 这样的方式对函数,数组,字符串,数字,正则表达式和布尔值同 ...

  2. WebKit Web Inspector增加覆盖率分析和类型推断功能

    WebKit中的Web Inspector(Web检查器)主要用于查看页面源代码.实时DOM层次结构.脚本调试.数据收集等,日前增加了两个十分有用的新功能:覆盖率分析和类型推断.覆盖率分析工具能够可视 ...

  3. 编程笔记:JavaScript 中的类型检查

    在Badoo的时候我们写了大量的JS脚本,光是在我们的移动web客户端上面就有大概60000行,可想而知,维护这么多JS可是相当具有挑战性的.在写如上规模js脚本客户端应用的时候我们必须对一件事保持警 ...

  4. JavaScript权威指南--类型、值和变量

    本章要点图 数据类型:计算机程序的运行需要对值(value)比如数字3.14或者文本"hello world"进行操作,在编程语言中,能够表示并操作的值的类型叫做数据类型(type ...

  5. JavaScript confirm 自定义风格及功能实现

    在网上找了一些弹窗插件,例如bootbox, 功能和动画效果都做的很好,但是很难自定义样式. 项目需要,Google相关方法后写了一个Demo, 没有JavaScript confirm切断线程的功能 ...

  6. 利用Javascript判断操作系统的类型实现不同操作系统下的兼容性

    原文地址 http://www.jb51.net/article/33640.htm 在通过Javascript实现客户端和服务端的交互时,有时候需要对操作系统进行判断,以便实现不同操作系统下的兼容性 ...

  7. JavaScript获取浏览器类型与版本

    从网上找到一段使用JavaScript判断浏览器以及浏览器版本的比较好的代码,在此记录一下: <script type="text/javascript"> var S ...

  8. 小结 javascript中的类型检测

    先吐槽一下博客园的编辑器,太不好用了,一旦粘贴个表格进来就会卡死,每次都要用html编辑器写,不爽! 关于javascript的类型检测,早在实习的时候就应该总结,一直拖到现在,当时因为这个问题还出了 ...

  9. JavaScript判断浏览器类型及版本

    JavaScript是前端开发的主要语言,我们可以通过编写JavaScript程序来判断浏览器的类型及版本.JavaScript判断浏览器类型一般有两种办法,一种是根据各种浏览器独有的属性来分辨,另一 ...

随机推荐

  1. CLR via C#关于泛型(Generics )的摘录

    泛型,是CLR和编程语言提供的一种特殊机制,它支持另一种形式的代码重用,即“算法重用”. 简单的说,开发人员先定义好一个算法,比如排序.搜索.交换.比较或者转换等.但是,定义算法的开发人员并不设改算法 ...

  2. UPS不间断电源工作原理简述

    原文地址:https://blog.csdn.net/uamix/article/details/52776297 一.定义 UPS即不间断电源,是将蓄电池(多为铅酸免维护蓄电池)与主机相连接,通过主 ...

  3. inux下配置rsyncd服务

    创建配置文件 touch /etc/rsyncd/rsyncd.conf #主配置文件 touch /etc/rsyncd/rsyncd.secrets #用户名密码文件,一组用户一行,用户名和密码使 ...

  4. OpenStack实践系列②认证服务Keystone

    OpenStack实践系列②认证服务Keystone 三.实战OpenStack之控制节点3.1 CentOS7的时间同步服务器chrony 下载chrony # yum install -y chr ...

  5. Cocos2d-x中文显示乱码

    Cocos2d-x 引擎编码格式默认为utf8,而VS开发环境默认为gbk2312,所以把代码文件保存为utf8格式就能解决. VS->文件->高级保存选项->Unicode(UTF ...

  6. matplotlib报错_tkinter.TclError: no display name and no $DISPLAY environment variable

    import matplotlib import matplotlib.pyplot as plt fig=plt.figure() #交互式测试,此时报错 解决办法,在引用后添加下面这一行 matp ...

  7. LuoGu P1004 方格取数

    题目传送门 一开始这个题我是不会的(沙华弱DP啊QwQ),后来考完试我一想,这东西怎么和数字三角形那题这么像啊? 都是自上而下,只能向下或者向右,求一个max 那么...这不就是个走两遍的数字矩阵嘛 ...

  8. 终于,我还是下决心学Java后台了

    我没有什么本事,人也丑,也不会忽悠,只能硬着头皮学习了.最近计划学习Java后台,因为最近接了私活的问题,好多都要Java后台和前端一起做.平常我在做什么,当然是忙着赚钱了 除了敲代码,你还有什么副业 ...

  9. Confluence 6 配置管理员会话的安全

    Confluence 通过使用 Confluence administration console 来显示管理员访问后台管理的功能或者管理一个空间.当一个 Confluence 管理员(以管理员身份登 ...

  10. Confluence 6 workbox 通知包含了什么

    当一个用户在 Confluence 中进行下面的操作的时候,workbox 将会显示为通知: 分享(Shares)你的页面或者博客页面. 提及(Mentions)你的页面,博客页面,回复或者任务. 你 ...