建议20:建议通过Function扩展类型
2024-08-23 11:04:50
JavaScript允许为语言的基本数据类型定义方法.通过Object.prototype添加原型方法,该方法可被所有的对象,.这样的方法对函数,数组,字符串,数字,正则表达式和布尔值都适用.例如,通过Function.prototype增加方法,使该方法对所有函数可用
Function.prototype.method=function(name,func){
this.prototype[name] = func
return this
}
为Function.prototype增加一个method方法之后,就不必使用prototype这个属性了,然后调用method方法直接为各种基本类型添加方法
JavaScript并没有单独的整数类型,因此有时候只提取数字中的整数部分是必要的.JavaScript本身提供的取整方法有些不太好,下面通过为Number.prototype添加一个integer方法来改善它.
Number.method('integer',function(){
return Math[this<0?'ceil':'floor'](this)
})
console.log((-10/3).integer()); //-3
Number.method方法能够根据数字的正负来判断是使用Math.ceiling还是Math.floors,这样就避免了每次都编写上面的代码
通过为基本类型扩展方法,可以大大提高语言的表现力.由于JavaScript原型继承的本质,,因此,所有原型方法立刻被赋予到所有实例,即使该实例在原型方法创建之前就创建好了.
注意:基本类型的原型是公共结构,在扩展基类时务必小心,避免覆盖基类的原生方法.一个稳妥的做法是在确定有没有该方法时才添加.例如:
Function.prototype.method = function(name,func){
if(!this.prototype[name]){
this.prototype[name] = func;
return this;
}
}
最新文章
- 纯CSS实现二级下拉导航菜单
- 转: Rest简介及Spring实现
- Protobuf C#教程 ThriftC#教程大合辑
- Bookstore project using XAMPP 详细配置 Part 1
- 温故而知新 OOP
- PHP 设计模式 笔记与总结(3)SPL 标准库
- netsh修改IP及DNS
- Hardwood Species 分类: POJ 树 2015-08-05 16:24 2人阅读 评论(0) 收藏
- 设计模式总结4--singleton pattern
- qt宽字符串中文乱码(codec->;toUnicode值得学习)
- C++实现的控制台-贪吃蛇
- CAS 无锁队列
- django的配置文件字符串是怎么导入的?
- Python_subprocess模块
- Nginx配置,413 Request Entity Too Large错误解决
- 安全需求-建模归类——By Me
- Linux发展历程
- redis安装,修改配置文件,多实例部署 redis-server
- idea 与springboot 快捷键
- 如何在Linux系统上安装字体