zoukankan      html  css  js  c++  java
  • 建议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;
      }
    }
  • 相关阅读:
    github设置添加SSH
    pythonanywhere笔记
    Python3x 爬取妹子图
    python3.4 百度API接口
    简易博客开发(8)----django1.9 博客部署到pythonanywhere上
    Python3.4+Django1.9+Bootstrap3
    docker搭建私有仓库之harbor
    docker新手常见问题和知识点
    node之sinopia搭建本地npm仓库
    rancher-HA快速搭建
  • 原文地址:https://www.cnblogs.com/chorkiu/p/12124235.html
Copyright © 2011-2022 走看看