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 相关文章推荐
基于jQuery的的一个隔行变色,鼠标移动变色的小插件
Jul 06 Javascript
js中访问html中iframe的文档对象的代码[IE6,IE7,IE8,FF]
Jan 08 Javascript
基于jquery的滚动条滚动固定div(附演示下载)
Oct 29 Javascript
Sort()函数的多种用法
Mar 20 Javascript
js动态获取子复选项并设计全选及提交的实现方法
Jun 24 Javascript
使用bootstrap-paginator.js 分页来进行ajax 异步分页请求示例
Mar 09 Javascript
jquery ajax异步提交表单数据的方法
Oct 27 jQuery
Vue press 支持图片放大功能的实例代码
Nov 09 Javascript
JavaScript 判断iPhone X Series机型的方法
Jan 28 Javascript
js实现点击按钮随机生成背景颜色
Sep 05 Javascript
JavaScript中EventBus实现对象之间通信
Oct 18 Javascript
vue祖孙组件之间的数据传递案例
Dec 07 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
PHPShop存在多个安全漏洞
2006/10/09 PHP
PHP 判断变量类型实现代码
2009/10/23 PHP
PHP中$_FILES的使用方法及注意事项说明
2014/02/14 PHP
PHP管理依赖(dependency)关系工具 Composer 安装与使用
2014/08/18 PHP
PHP分页类集锦
2014/11/18 PHP
Yii框架防止sql注入,xss攻击与csrf攻击的方法
2016/10/18 PHP
yii2-GridView在开发中常用的功能及技巧总结
2017/01/07 PHP
javascript里的条件判断
2007/02/27 Javascript
JavaScript中的事件处理
2008/01/16 Javascript
js 对联广告、漂浮广告封装类(IE,FF,Opera,Safari,Chrome
2009/11/26 Javascript
JavaScript快速检测浏览器对CSS3特性的支持情况
2012/09/26 Javascript
javascript动态判断html元素并执行不同的操作
2014/06/16 Javascript
AngularJS入门教程(一):静态模板
2014/12/06 Javascript
JavaScript实现的经典文件树菜单效果
2015/09/08 Javascript
总结几道关于Node.js的面试问题
2017/01/11 Javascript
Vue.js学习笔记之常用模板语法详解
2017/07/25 Javascript
vue滚动轴插件better-scroll使用详解
2017/10/17 Javascript
微信小程序第三方框架对比 之 wepy / mpvue / taro
2019/04/10 Javascript
vue模仿网易云音乐的单页面应用
2019/04/24 Javascript
js+html实现周岁年龄计算器
2019/06/25 Javascript
Vue中图片Src使用变量的方法
2019/10/30 Javascript
JS实现网站楼层导航效果代码实例
2020/06/16 Javascript
vue循环中点击选中再点击取消(单选)的实现
2020/09/10 Javascript
vue 中的动态传参和query传参操作
2020/11/09 Javascript
[00:27]DOTA2次级职业联赛 - Lilith战队宣传片
2014/12/01 DOTA
python模块之StringIO使用示例
2015/04/08 Python
Python中类型关系和继承关系实例详解
2015/05/25 Python
pandas通过loc生成新的列方法
2018/11/28 Python
python使用Plotly绘图工具绘制水平条形图
2020/03/25 Python
Python 利用argparse模块实现脚本命令行参数解析
2020/12/28 Python
美国花布包包品牌:Vera Bradley
2017/08/11 全球购物
美国汽车性能部件和赛车零件网站:Vivid Racing
2018/03/27 全球购物
JD Sports西班牙:英国领先的运动服装公司
2020/01/06 全球购物
金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-> (一千零一拾一元整)输出
2015/05/29 面试题
怎样写好自我评价呢?
2014/02/16 职场文书
退休劳动合同怎么写?
2019/10/25 职场文书