zoukankan      html  css  js  c++  java
  • 2.7原型链模式扩展-批量设置公有属性

    重构原型对象的方式:自己新开辟一个堆内存,存储我们公有的属性和方法,把浏览器原来给Fn.prototype开辟的那个替换掉

      1.只有浏览器天生给Fn.prototype开辟的堆内存里面才有constructor,而我们自己开辟的堆内存没有这个属性,这样constructor指向就不是Fn而是Object,为了和原来的保持

       一致,我们需要手动的增加constructor的指向

    function Fn(){
    
      this.x = 100
    
    }
    
    Fn.prototype = {
    
      constructor: Fn,
    
      a: function () {},
    
      b: function () {}
    
    }
    
    var f1 = new Fn;
    
    f.a()
    
    f.b()

      

    2.用这种方式给内置类增加公有的属性

         给内置类增加数组去重的方法

         Array.prototype.unique = {

        constructor: Array,

        unique: function () {}

         }

      我们这种方式会把之前已经存在于原型上的属性和方法替换掉了,所以我们用这种方式修改内置类的话,浏览器是个屏蔽掉的

      但是我们可以一个个的修改内置的方法,当我们通过下述方式在数组的原型上增加方法。如果方法名和原来内置的重复了,会把人家内置的修改掉,我们以后再内置类的原型上增加方法,命名都需要加特殊前缀

      Array.prototype.sort = function () {

        console.log("ok");// this->ary 我们当前要操作的这个数组

      }

      var ary = [1,2,3,2,3,4,5];

      ary.sort()

      console.log(ary)

  • 相关阅读:
    super与this的区别?
    springboot(4)-thymeleaf
    springboot(3)-自定义josn
    springboot(2)-Http协议接口开发
    springboot(1)-HelloWorld
    SpringSecurityOauth2.0
    Docker 应用部署
    RabbitMQ02
    RabbitMQ01
    011通用寄存器
  • 原文地址:https://www.cnblogs.com/z-dl/p/8929871.html
Copyright © 2011-2022 走看看