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 相关文章推荐
在线编辑器的实现原理(兼容IE和FireFox)
Mar 09 Javascript
JavaScript在IE和Firefox浏览器下的7个差异兼容写法小结
Jun 18 Javascript
jquery 延迟执行实例介绍
Aug 20 Javascript
Jquery取得iframe下内容的方法
Nov 18 Javascript
SuperSlide2实现图片滚动特效
Jun 20 Javascript
原生JavaScript编写俄罗斯方块
Mar 30 Javascript
javascript新闻跑马灯实例代码
Jul 29 Javascript
11行JS代码制作二维码生成功能
Mar 09 Javascript
解决vue js IOS H5focus无法自动弹出键盘的问题
Aug 30 Javascript
javascript设计模式 ? 代理模式原理与用法实例分析
Apr 16 Javascript
jenkins自动构建发布vue项目的方法步骤
Jan 04 Vue.js
js实现验证码干扰(静态)
Feb 22 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 命令行工具 shell_exec, exec, passthru, system详细使用介绍
2011/09/11 PHP
PHP 图片上传代码
2011/09/13 PHP
关于PHP session 存储方式的详细介绍
2013/06/25 PHP
php跨域cookie共享使用方法
2014/02/20 PHP
在Linux系统的服务器上隐藏PHP版本号的方法
2015/06/06 PHP
解决PHP里大量数据循环时内存耗尽的方法
2015/10/10 PHP
php删除数组中重复元素的方法
2015/12/22 PHP
laravel框架分组控制器和分组路由实现方法示例
2020/01/25 PHP
ajax 文件上传应用简单实现
2009/03/03 Javascript
jquery创建div 实现代码
2009/04/27 Javascript
js随机颜色代码的多种实现方式
2013/04/23 Javascript
chrome浏览器不支持onmouseleave事件的解决技巧
2013/05/31 Javascript
js中小数转换整数的方法
2014/01/26 Javascript
JS实现定时自动关闭DIV层提示框的方法
2015/05/11 Javascript
javascript模拟C#格式化字符串
2015/08/26 Javascript
Javascript vue.js表格分页,ajax异步加载数据
2016/10/24 Javascript
vue 获取url里参数的两种方法小结
2020/11/12 Javascript
Python 实现链表实例代码
2017/04/07 Python
Python简单实现控制电脑的方法
2018/01/22 Python
python 按照固定长度分割字符串的方法小结
2018/04/30 Python
python3利用tcp实现文件夹远程传输
2018/07/28 Python
关于Python形参打包与解包小技巧分享
2019/08/24 Python
windows python3安装Jupyter Notebooks教程
2020/04/13 Python
pytorch 常用函数 max ,eq说明
2020/06/28 Python
Python+Opencv实现把图片、视频互转的示例
2020/12/17 Python
HTML5拖拽的简单实例
2016/05/30 HTML / CSS
雪花秀美国官方网站:韩国著名草本护肤化妆品品牌
2016/10/19 全球购物
教师的实习鉴定
2013/12/15 职场文书
运动会开幕式邀请函
2014/01/22 职场文书
植物生产学专业求职信
2014/08/08 职场文书
自强自立美德少年事迹材料
2014/08/16 职场文书
销售员岗位职责
2015/02/10 职场文书
行政处罚告知书
2015/07/01 职场文书
《植树问题》教学反思
2016/03/03 职场文书
mapstruct的用法之qualifiedByName示例详解
2022/04/06 Java/Android
悬疑名作《朋友游戏》动画无字ED宣传片 新角色公开
2022/04/13 日漫