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 相关文章推荐
破解Session cookie的方法
Jul 28 Javascript
用Greasemonkey 脚本收藏网站会员信息到本地
Oct 26 Javascript
JQuery获取样式中的background-color颜色值的问题
Aug 20 Javascript
javascript 实现键盘上下左右功能的小例子
Sep 15 Javascript
jQuery中操控hidden、disable等无值属性的方法
Jan 06 Javascript
深入分析jquery解析json数据
Dec 09 Javascript
Jquery Ajax xmlhttp请求成功问题
Feb 04 Javascript
JQuery学习总结【二】
Dec 01 Javascript
实例详解Vue项目使用eslint + prettier规范代码风格
Aug 20 Javascript
vue中使用v-model完成组件间的通信
Aug 22 Javascript
layui复选框的全选与取消实现方法
Sep 02 Javascript
vue中渲染对象中属性时显示未定义的解决
Jul 31 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会话超时时间设置方法
2014/06/10 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式二图文详解
2019/04/09 PHP
Laravel 框架路由原理与路由访问实例分析
2020/04/14 PHP
用Javascript实现Sleep暂停功能代码
2010/09/03 Javascript
jquery中this的使用说明
2010/09/06 Javascript
JQuery验证jsp页面属性是否为空(实例代码)
2013/11/08 Javascript
Blocksit插件实现瀑布流数据无限( 异步)加载
2014/06/20 Javascript
js实现具有高亮显示效果的多级菜单代码
2015/09/01 Javascript
基于javascript实现动态时钟效果
2020/08/18 Javascript
JavaScript 继承详解(五)
2016/10/11 Javascript
jquery对象和DOM对象的相互转换详解
2016/10/18 Javascript
JS中作用域和变量提升(hoisting)的深入理解
2016/10/31 Javascript
Nodejs搭建wss服务器教程
2017/05/24 NodeJs
微信小程序实现自定义picker选择器弹窗内容
2020/05/26 Javascript
vue中动态设置meta标签和title标签的方法
2018/07/11 Javascript
Vue-cli3项目配置Vue.config.js实战记录
2018/07/29 Javascript
在create-react-app中使用sass的方法示例
2018/10/01 Javascript
vue项目搭建以及全家桶的使用详细教程(小结)
2018/12/19 Javascript
vue实现可视化可拖放的自定义表单的示例代码
2019/03/20 Javascript
webpack4从0搭建组件库的实现
2020/11/29 Javascript
使用pdb模块调试Python程序实例
2015/06/02 Python
python3实现读取chrome浏览器cookie
2016/06/19 Python
python 字符串转列表 list 出现\ufeff的解决方法
2017/06/22 Python
python利用OpenCV2实现人脸检测
2020/04/16 Python
python3.6.3转化为win-exe文件发布的方法
2018/10/31 Python
matplotlib 多个图像共用一个colorbar的实现示例
2020/09/10 Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
2020/10/16 Python
python爬虫利用代理池更换IP的方法步骤
2021/02/21 Python
HTML5的hidden属性兼容老浏览器的方法
2014/04/23 HTML / CSS
JD Sports法国:英国篮球和运动时尚的领导者
2017/09/28 全球购物
材料物理专业大学毕业生求职信
2013/10/15 职场文书
高中美术教学反思
2014/01/19 职场文书
干货干货!2019最新优秀创业计划书
2019/03/21 职场文书
写作技巧:如何撰写一份优秀的营销策划书
2019/08/13 职场文书
坚持不是死撑,更重要的是心态
2019/08/19 职场文书
基于Java的MathML转图片的方法(示例代码)
2021/06/23 Java/Android