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 相关文章推荐
超级强大的表单验证
Jun 26 Javascript
通过ifame指向的页面高度调整iframe的高度
Oct 05 Javascript
JQUERY THICKBOX弹出层插件
Aug 30 Javascript
JavaScript的继承的封装介绍
Oct 15 Javascript
JS过滤url参数特殊字符的实现方法
Dec 24 Javascript
js漂浮广告实现代码
Aug 15 Javascript
JSON字符串和对象相互转换实例分析
Jun 16 Javascript
BootStrap初学者对弹出框和进度条的使用感觉
Jun 27 Javascript
jQuery的ready方法实现原理分析
Oct 26 Javascript
浅析Proxy可以优化vue的数据监听机制问题及实现思路
Nov 29 Javascript
如何对react hooks进行单元测试的方法
Aug 14 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
浅析php中如何在有限的内存中读取大文件
2013/07/02 PHP
PHP中SQL查询语句的id=%d解释(推荐)
2016/12/10 PHP
JavaScript中void(0)的具体含义解释
2007/02/27 Javascript
setAttribute 与 class冲突解决
2008/02/17 Javascript
19个很有用的 JavaScript库推荐
2011/06/27 Javascript
js阻止事件追加的具体实现
2014/10/15 Javascript
JS动态添加Table的TR,TD实现方法
2015/01/28 Javascript
轻松实现Bootstrap图片轮播
2020/04/20 Javascript
JavaScript用JSONP跨域请求数据实例详解
2017/01/06 Javascript
Vue.js学习笔记之修饰符详解
2017/07/25 Javascript
vue+axios新手实践实现登陆的示例代码
2018/06/06 Javascript
一个Vue视频媒体多段裁剪组件的实现示例
2018/08/09 Javascript
js计算两个日期间的天数月的实例代码
2018/09/20 Javascript
vue头部导航动态点击处理方法
2018/11/02 Javascript
详解如何使用router-link对象方式传递参数?
2019/05/02 Javascript
Node.js+ELK日志规范的实现
2019/05/23 Javascript
利用python获得时间的实例说明
2013/03/25 Python
Python正则表达式匹配ip地址实例
2014/10/09 Python
Python使用redis pool的一种单例实现方式
2016/04/16 Python
python多线程http压力测试脚本
2019/06/25 Python
python笔记之mean()函数实现求取均值的功能代码
2019/07/05 Python
面向新手解析python Beautiful Soup基本用法
2020/07/11 Python
英国家用电器购物网站:Hughes
2018/02/23 全球购物
周仰杰(JIMMY CHOO)法国官方网站:闻名世界的鞋子品牌
2019/09/27 全球购物
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
2012/05/30 面试题
最新英语专业学生求职信范文
2013/09/21 职场文书
毕业自荐书
2013/12/09 职场文书
入党积极分子自我鉴定
2014/02/18 职场文书
服务承诺书怎么写
2014/05/24 职场文书
村党支部书记四风问题个人对照检查材料思想汇报
2014/10/06 职场文书
幼儿园园长新年寄语2015
2014/12/08 职场文书
2015医德医风个人工作总结
2015/04/02 职场文书
2015年招生工作总结
2015/05/04 职场文书
MySQL中的布尔值,怎么存储false或true
2021/06/04 MySQL
MySQL外键约束(FOREIGN KEY)案例讲解
2021/08/23 MySQL
游戏《我的世界》澄清Xbox版暂无计划加入光追
2022/04/03 其他游戏