• 建议20:建议通过Function扩展类型


      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;
      }
    }
  • 相关阅读:
    hexo部署失败如何解决
    github设置添加SSH
    鼠标相对于屏幕的位置、鼠标相对于窗口的位置和获取鼠标相对于文档的位置
    git push origin master 错误解决办法
    js设计模式:工厂模式、构造函数模式、原型模式、混合模式
    d3.js实现自定义多y轴折线图
    计算机网络之HTTP(上)基础知识点
    Node.js学习笔记(一)基础介绍
    计算机组成
    Ajax及跨域
  • 原文地址:https://www.cnblogs.com/chorkiu/p/12124235.html
Copyright © 2020-2023  润新知