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 相关文章推荐
求得div 下 img的src地址的js代码
Feb 28 Javascript
jQuery 属性选择器element[herf*='value']使用示例
Oct 20 Javascript
Jquery之Bind方法参数传递与接收的三种方法
Jun 24 Javascript
JavaScript中关于for循环删除数组元素内容时出现的问题
Nov 21 Javascript
Vue.js实现在下拉列表区域外点击即可关闭下拉列表的功能(自定义下拉列表)
May 30 Javascript
把JavaScript代码改成ES6语法不完全指南(分享)
Sep 10 Javascript
简单介绍react redux的中间件的使用
Apr 06 Javascript
浅谈如何通过node.js对数据进行MD5加密
May 16 Javascript
react native基于FlatList下拉刷新上拉加载实现代码示例
Sep 30 Javascript
原生JS 实现的input输入时表格过滤操作示例
Aug 03 Javascript
Ant Design Vue 添加区分中英文的长度校验功能
Jan 21 Javascript
javascript设计模式 ? 中介者模式原理与用法实例分析
Apr 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
怎样在UNIX系统下安装MySQL
2006/10/09 PHP
phpmyadmin提示The mbstring extension is missing的解决方法
2014/12/17 PHP
PHP链表操作简单示例
2016/10/15 PHP
jquery1.83 之前所有与异步列队相关的模块详细介绍
2012/11/13 Javascript
在JavaScript里嵌入大量字符串常量的实现方法
2013/07/07 Javascript
JavaScript表单通过正则表达式验证电话号码
2014/03/14 Javascript
使用jQuery中的when实现多个AJAX请求对应单个回调的例子分享
2014/04/23 Javascript
Javascript单元测试框架QUnitjs详细介绍
2014/05/08 Javascript
详解Jquery实现ready和bind事件
2016/04/14 Javascript
Bootstrap每天必学之标签页(Tab)插件
2020/08/09 Javascript
jQuery UI Bootstrap是什么?
2016/06/17 Javascript
javascript insertAfter()定义与用法示例
2016/07/25 Javascript
深入理解JavaScript中Ajax
2016/08/02 Javascript
基于JS分页控件实现简单美观仿淘宝分页按钮效果
2016/11/07 Javascript
javascript实现滑动解锁功能
2017/03/22 Javascript
微信小程序-横向滑动scroll-view隐藏滚动条
2017/04/20 Javascript
浅谈在fetch方法中添加header后遇到的预检请求问题
2017/08/31 Javascript
javascript中神奇的 Date对象小结
2017/10/12 Javascript
利用jqprint插件打印页面内容的实现方法
2018/01/09 Javascript
vue如何安装使用Quill富文本编辑器
2018/09/21 Javascript
浅谈关于iview表单验证的问题
2018/09/29 Javascript
vue组件中的样式属性scoped实例详解
2018/10/30 Javascript
JavaScript中的回调函数实例讲解
2019/01/27 Javascript
vue实现学生信息管理系统
2020/05/30 Javascript
解决Python中由于logging模块误用导致的内存泄露
2015/04/23 Python
浅谈Tensorflow由于版本问题出现的几种错误及解决方法
2018/06/13 Python
python实现微信小程序用户登录、模板推送
2019/08/28 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
2019/10/24 Python
python求绝对值的三种方法小结
2019/12/04 Python
在python中利用pycharm自定义代码块教程(三步搞定)
2020/04/15 Python
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
HTML5新增的表单元素和属性实例解析
2014/07/07 HTML / CSS
研究生给导师的自荐信
2015/03/06 职场文书
常用的Python代码调试工具总结
2021/06/23 Python
redis 解决库存并发问题实现数量控制
2022/04/08 Redis
PostgreSQL之连接失败的问题及解决
2023/05/08 PostgreSQL