Javascript如何实现扩充基本类型


Posted in Javascript onAugust 26, 2020

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

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

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

一、JavaScript增加整数类型

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

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

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

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

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

String.method('trim',function(){
  return this.replace(/^\s+|\s+$/g,'');
});

document.writeln(' " '+"  neat  ".trim() +' " ');//" neat "

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

Function.prototype.method=function(name,func){
  if(!this.prototype[name]){
    this.prototype[name]=func;
  }
  return this;
}

new前缀去调用一个函数

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

superior

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
如何使用JS获取IE上传文件路径(IE7,8)
Jul 08 Javascript
php中给js数组赋值方法
Mar 10 Javascript
学JavaScript七大注意事项【必看】
May 04 Javascript
js严格模式总结(分享)
Aug 22 Javascript
BootStrap 超链接变按钮的实现方法
Sep 25 Javascript
BootStrap tooltip提示框使用小结
Oct 26 Javascript
js HTML5 canvas绘制图片的方法
Sep 08 Javascript
vue父子组件的嵌套的示例代码
Sep 08 Javascript
通过封装scroll.js 获取滚动条的值
Jul 13 Javascript
bootstrap自定义样式之bootstrap实现侧边导航栏功能
Sep 10 Javascript
基于游标的分页接口实现代码示例
Nov 12 Javascript
基于vue实现微博三方登录流程解析
Nov 04 Javascript
Javascript var变量删除原理及实现
Aug 26 #Javascript
js实现车辆管理系统
Aug 26 #Javascript
js实现飞机大战小游戏
Aug 26 #Javascript
JS面向对象实现飞机大战
Aug 26 #Javascript
JavaScript Image对象实现原理实例解析
Aug 26 #Javascript
js实现飞机大战游戏
Aug 26 #Javascript
JS+Canvas实现五子棋游戏
Aug 26 #Javascript
You might like
收音机频率指针指示不准确和灵敏度低问题
2021/03/02 无线电
网站用php实现paypal整合方法
2010/11/28 PHP
php二维数组排序与默认自然排序的方法介绍
2013/04/27 PHP
纯php生成随机密码
2015/10/30 PHP
ThinkPHP3.1.2 使用cli命令行模式运行的方法
2020/04/14 PHP
Jquery 实现Tab效果 思路是js思路
2010/03/02 Javascript
js报错 Object doesn't support this property or method的原因分析
2011/03/31 Javascript
Backbone.js框架中简单的View视图编写学习笔记
2016/02/14 Javascript
Web前端开发工具——bower依赖包管理工具
2016/03/29 Javascript
什么是JavaScript中的结果值?
2016/10/08 Javascript
Bootstrap中glyphicons-halflings-regular.woff字体报404错notfound的解决方法
2017/01/19 Javascript
JavaScript实现向select下拉框中添加和删除元素的方法
2017/03/07 Javascript
使用原生js+canvas实现模拟心电图的实例
2017/09/20 Javascript
Vue引用第三方datepicker插件无法监听datepicker输入框的值的解决
2018/01/27 Javascript
vue移动端监听滚动条高度的实现方法
2018/09/03 Javascript
使用JavaScript实现网页秒表功能(含开始、暂停、继续、重置功能)
2020/06/05 Javascript
vant 解决tab切换插件标题样式自定义的问题
2020/11/13 Javascript
[04:53]DOTA2英雄基础教程 祈求者
2014/01/03 DOTA
python3使用tkinter实现ui界面简单实例
2014/01/10 Python
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
2018/07/09 Python
pyqt5移动鼠标显示坐标的方法
2019/06/21 Python
django多个APP的urls设置方法(views重复问题解决)
2019/07/19 Python
Django实现文件上传下载功能
2019/10/06 Python
使用PyTorch将文件夹下的图片分为训练集和验证集实例
2020/01/08 Python
django 利用Q对象与F对象进行查询的实现
2020/05/15 Python
Python pip安装模块提示错误解决方案
2020/05/22 Python
python代码能做成软件吗
2020/07/24 Python
如何使用Django Admin管理后台导入CSV
2020/11/06 Python
伦敦剧院门票:London Theatre Direct
2018/11/21 全球购物
Belvilla法国:休闲度假房屋出租
2020/10/03 全球购物
高三毕业典礼主持词
2014/03/27 职场文书
模特大赛策划方案
2014/05/28 职场文书
大学生军训自我鉴定范文
2014/09/18 职场文书
2015年企业新年寄语
2014/12/08 职场文书
委托公证书样本
2015/01/23 职场文书
分位数回归模型quantile regeression应用详解及示例教程
2021/11/02 Python