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 相关文章推荐
javascript类继承机制的原理分析
Sep 12 Javascript
原生js实现半透明遮罩层效果具体代码
Jun 06 Javascript
JavaScript中的关键字&quot;VAR&quot;使用详解 分享
Jul 31 Javascript
javascript alert乱码的解决方法
Nov 05 Javascript
如何处理JSON中的特殊字符
Nov 30 Javascript
BootStrop前端框架入门教程详解
Dec 25 Javascript
Javascript继承机制详解
May 30 Javascript
详解微信小程序中的页面代码中的模板的封装
Oct 12 Javascript
angularjs中判断ng-repeat是否迭代完的实例
Sep 12 Javascript
javascript实现商品图片放大镜
Nov 28 Javascript
angular组件间传值测试的方法详解
May 07 Javascript
一文读懂vue动态属性数据绑定(v-bind指令)
Jul 20 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
php中var_export与var_dump的区别分析
2010/08/21 PHP
mod_php、FastCGI、PHP-FPM等PHP运行方式对比
2015/07/02 PHP
document.compatMode介绍
2009/05/21 Javascript
多浏览器支持的右下角浮动窗口
2010/04/01 Javascript
JS解析json数据并将json字符串转化为数组的实现方法
2012/12/25 Javascript
js实现文字跟随鼠标移动而移动的方法
2015/02/28 Javascript
jQuery实现菜单式图片滑动切换
2015/03/14 Javascript
SpringMVC restful 注解之@RequestBody进行json与object转换
2015/12/10 Javascript
前端实现文件的断点续传(前端文件提交+后端PHP文件接收)
2016/11/04 Javascript
JS如何设置iOS中微信浏览器的title
2016/11/22 Javascript
JS实现iframe自适应高度的方法示例
2017/01/07 Javascript
js实现简单的获取验证码按钮效果
2017/03/03 Javascript
jQuery插件开发发送短信倒计时功能代码
2017/05/09 jQuery
解决vue A对象赋值给B对象,修改B属性会影响到A的问题
2018/09/25 Javascript
Node.js net模块功能及事件监听用法分析
2019/01/05 Javascript
webpack4 SplitChunks实现代码分隔详解
2019/05/23 Javascript
详解将微信小程序接口Promise化并使用async函数
2019/08/05 Javascript
详解webpack-dev-middleware 源码解读
2020/03/23 Javascript
[02:54]DOTA2英雄基础教程 撼地者
2014/01/14 DOTA
[01:39:42]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python后台开发Django会话控制的实现
2019/04/15 Python
Python3内置模块pprint让打印比print更美观详解
2019/06/02 Python
用openCV和Python 实现图片对比,并标识出不同点的方式
2019/12/19 Python
Python使用Pandas库常见操作详解
2020/01/16 Python
Pycharm 解决自动格式化冲突的设置操作
2021/01/15 Python
HTML5 Canvas标签使用收录
2009/07/07 HTML / CSS
中国最大的团购网站:聚划算
2016/09/21 全球购物
Delphi CS笔试题
2014/01/04 面试题
不打扫卫生检讨书
2014/02/12 职场文书
大学中国梦演讲稿
2014/04/23 职场文书
优秀教师感人事迹材料
2014/05/04 职场文书
社区务虚会发言材料
2014/10/20 职场文书
五年级下册复习计划
2015/01/19 职场文书
什么是执行力?9个故事告诉您:成功绝非偶然!
2019/07/05 职场文书
导游词之神仙居景区
2019/11/15 职场文书
springboot入门 之profile设置方式
2022/04/04 Java/Android