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地图拖动功能SpryMap的简单实现
Jul 17 Javascript
JQuery结合CSS操作打印样式的方法
Dec 24 Javascript
JavaScript原型链示例分享
Jan 26 Javascript
基于jQuery全屏焦点图左右切换插件responsiveslides
Sep 07 Javascript
jQuery解析json格式数据简单实例
Jan 22 Javascript
浅谈js中字符和数组一些基本算法题
Aug 15 Javascript
深入理解JavaScript中的尾调用(Tail Call)
Feb 07 Javascript
ztree简介_动力节点Java学院整理
Jul 19 Javascript
基于Vue渲染与插件的加载顺序的问题详解
Mar 05 Javascript
JavaScript实现预览本地上传图片功能完整示例
Mar 08 Javascript
JS实现灯泡开关特效
Mar 30 Javascript
微信小程序 wx.getUserInfo引导用户授权问题实例分析
Mar 09 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实现多服务器session共享之NFS共享的方法
2007/03/16 PHP
PHP封装分页函数实现文本分页和数字分页
2014/10/23 PHP
用js 让图片在 div或dl里 居中,底部对齐
2008/01/21 Javascript
js继承 Base类的源码解析
2008/12/30 Javascript
Javascript 八进制转义字符(8进制)
2011/04/08 Javascript
19个很有用的 JavaScript库推荐
2011/06/27 Javascript
如何判断微信内置浏览器(通过User Agent实现)
2014/09/01 Javascript
jQuery超酷平面式时钟效果代码分享
2020/03/30 Javascript
Jquery修改image的src属性,图片不加载问题的解决方法
2016/05/17 Javascript
jQuery购物网页经典制作案例
2016/08/19 Javascript
JS实现点击表头表格自动排序(含数字、字符串、日期)
2017/01/22 Javascript
websocket+node.js实现实时聊天系统问题咨询
2017/05/17 Javascript
JS数组操作之增删改查的简单实现
2017/08/21 Javascript
Vue.js计算机属性computed和methods方法详解
2019/10/12 Javascript
vue实现图片上传预览功能
2019/12/23 Javascript
python3大文件解压和基本操作
2017/12/15 Python
Python实现正整数分解质因数操作示例
2018/08/01 Python
pyqt5 键盘监听按下enter 就登陆的实例
2019/06/25 Python
python实现爬取百度图片的方法示例
2019/07/06 Python
如何在 Django 模板中输出 &quot;{{&quot;
2020/01/24 Python
Python3 assert断言实现原理解析
2020/03/02 Python
python实现人像动漫化的示例代码
2020/05/17 Python
Python中logger日志模块详解
2020/08/04 Python
Python reversed反转序列并生成可迭代对象
2020/10/22 Python
python 实现倒计时功能(gui界面)
2020/11/11 Python
利用纯CSS3实现动态的自行车特效源码
2017/01/20 HTML / CSS
Blue Nile台湾:钻石珠宝商,订婚首饰、结婚戒指和精品首饰
2017/11/24 全球购物
Spartoo瑞典:鞋子、包包和衣服
2018/09/15 全球购物
编写类String的构造函数、析构函数和赋值函数
2012/05/29 面试题
初中女生自我鉴定
2013/12/19 职场文书
考试诚信承诺书
2014/05/23 职场文书
应急处置方案
2014/06/16 职场文书
2014离婚协议书范文两篇
2014/09/15 职场文书
夫妻吵架保证书
2015/05/08 职场文书
基于JavaScript实现省市联动效果
2021/06/22 Javascript
Redis模仿手机验证码发送的实现示例
2021/11/02 Redis