zoukankan      html  css  js  c++  java
  • Javascript修改对象方法

    一、创建新的方法

    利用Prototype属性为任何已有的类定义新方法,就像处理自己的类一样。例如,还记得Number类的tostring()方法吗,如果传递16,它将输出十六进制的字符串。难道用toHexstring()方法处理这个操作不是更好吗?创建它很简单:

    Number.prototype.toHexstring = function(){
       return this.toString(16);
    }    

    在此环境中,关键字this指向Number的实例,因此可完全访问Number的所有方法。有了这段代码,可实现下面操作:

    var iNum = 15;
    alert(iNum.toHexstring());  //outputs "F" 

    二、重定义已有的方法

    就像能给已有的类定义新方法一样,也可重定义已有的方法。函数名只是指向函数的指针,因为可以轻易地指向其他函数。如果修改了本地方法,如toString(),会出现什么情况?

    Function.prototype.toString = function () {
      return "Function code hidden";
    } 

    前面的代码完全合法,运行结果完全符合预期:

    function sayHi(){
      alert("hi");
    } 
    
    alert(sayHi.tostring());  //outputs "Function code hidden" 

    有时你甚至可能在新方法中调用原始方法:

    Function.prototype.originalToString = Function.prototype.toString; 
    
    Function.prototype.toString = Function(){
      if(this.originalToString().length>100){
         return "Function too long to display."
     }else{
         return this.originalToString();
      }
    };
  • 相关阅读:
    BZOJ_1712_[Usaco2007 China]Summing Sums 加密_矩阵乘法
    BZOJ_2693_jzptab_莫比乌斯反演
    BZOJ_5296_[Cqoi2018]破解D-H协议_BSGS
    BZOJ_5301_[Cqoi2018]异或序列&&CF617E_莫队
    前端开发框架对比
    现在企业流行的java框架技术
    尼古拉斯·沃斯
    算法和流程图
    Java中DAO的实现
    java中的DAO设计模式
  • 原文地址:https://www.cnblogs.com/coolicer/p/1824114.html
Copyright © 2011-2022 走看看