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 相关文章推荐
Prototype使用指南之form.js
Jan 10 Javascript
JS 的应用开发初探(mootools)
Dec 19 Javascript
js中escape对应的C#解码函数 UrlDecode
Dec 16 Javascript
javascript检测两个数组是否相似
May 19 Javascript
JS+DIV+CSS实现仿表单下拉列表效果
Aug 18 Javascript
jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表
Aug 26 Javascript
jQuery实现的多张图无缝滚动效果【测试可用】
Sep 12 Javascript
MUI 上拉刷新/下拉加载功能实例代码
Apr 13 Javascript
简单的网页广告特效实例
Aug 19 Javascript
快速了解vue-cli 3.0 新特性
Feb 28 Javascript
vue.js 实现a标签href里添加参数
Nov 12 Javascript
Vue实现购物小球抛物线的方法实例
Nov 22 Vue.js
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
Protoss魔法科技
2020/03/14 星际争霸
ThinkPHP中的create方法与自动令牌验证实例教程
2014/08/22 PHP
PHP简单实现二维数组的矩阵转置操作示例
2017/11/24 PHP
PHP PDOStatement::nextRowset讲解
2019/02/01 PHP
PHP实现会员账号单唯一登录的方法分析
2019/03/07 PHP
JQuery 操作select标签实现代码
2010/05/14 Javascript
javascript排序函数实现数字排序
2015/06/26 Javascript
三种带箭头提示框总结实例
2016/06/14 Javascript
jQuery编写网页版2048小游戏
2017/01/06 Javascript
layui前段框架日期控件使用方法详解
2017/05/19 Javascript
Thinkphp5微信小程序获取用户信息接口的实例详解
2017/09/26 Javascript
利用Node.js检测端口是否被占用的方法
2017/12/07 Javascript
浅谈React高阶组件
2018/03/28 Javascript
JavaScript使用Math.random()生成简单的验证码
2019/01/21 Javascript
教你搭建按需加载的Vue组件库(小结)
2019/07/29 Javascript
vue+element表格导出为Excel文件
2019/09/26 Javascript
es6中使用map简化复杂条件判断操作实例详解
2020/02/19 Javascript
解决vuex刷新数据消失问题
2020/11/12 Javascript
Python strip lstrip rstrip使用方法
2008/09/06 Python
Python中返回字典键的值的values()方法使用
2015/05/22 Python
详解python脚本自动生成需要文件实例代码
2017/02/04 Python
关于Python中Inf与Nan的判断问题详解
2017/02/08 Python
Python装饰器用法实例总结
2018/02/07 Python
python查看列的唯一值方法
2018/07/17 Python
Python中函数参数匹配模型详解
2019/06/09 Python
python通过txt文件批量安装依赖包的实现步骤
2019/08/13 Python
python中通过selenium简单操作及元素定位知识点总结
2019/09/10 Python
python实现三壶谜题的示例详解
2020/11/02 Python
阿玛尼美妆英国官网:Giorgio Armani Beauty英国
2019/03/28 全球购物
八年级历史教学反思
2014/01/10 职场文书
聘任书的写作格式及范文
2014/03/29 职场文书
授权委托书范本
2014/04/03 职场文书
预备党员公开承诺书
2014/05/28 职场文书
2014世界杯球队球队口号
2014/06/05 职场文书
车间安全生产标语
2014/06/06 职场文书
党员“一帮一”活动总结
2015/05/07 职场文书