• 原型模式


    在原型模式中this常用的有两种情况:

    //this.xxx=xxx;当前类的实例;

    //某一个方法中的this,看谁执行的this是谁

    function Fn (){
    this.x = 100;
    this.y =200;
    this.getX = function()
    {
    console.log(this.x)
            };
        }
    Fn.prototype ={
    constructor : Fn,
    y:300,
    getX : function(){
    console.log(this.x)
    }
    getY : function(){
    console.log(this.y)
        }
    };
    var f = new Fn;
    f.getX();->100
    f.prototype.getX();->undefined

    给内置类的原型扩展方法

    Array.prototype.myUnique = function(){
    
    var obj = {};
    for(var i= 0;i<this.length;i++){
    var cur = this[i];
    if(obj[cur]===cur){
    this[i] = this[this.length-1];
    this.length--;
    i--;
    continue;
        }
    obj[cur] = cur;
    
    }
    obj = null;
    return this;//实现链式写法
    }
    var ary = [.......];
    ary.myUnique().sort(function(a,b){return a-b});

     所有的函数数据类型都天生自带一个属性:prototype,它存储的值是一个对象数据类型,浏览器默认为它开辟一个堆内存;

    在浏览器给prototype默认开辟的这个对内存上有一个默认的属性:constructor,只想当前类本身;

    每一个对象数据类型(普通对象,数组,正则,实例)都天生自带一个属性__proto__指向当前实例所属累的原型;

  • 相关阅读:
    「SDOI2009」Bill的挑战
    「HAOI2011」Problem c
    HDU3530【STL/单调队列/RMQ】
    HDU2874【倍增、ST】
    POJ2955【区间DP】
    SPOJ375 Query on a tree 【倍增,在线】
    训练[2]-DFS
    Fighting For 2017 Season Contest 1
    POJ2796/DP/单调栈
    New Year Tree 【DFS序+线段树区间查询修改+二进制保存状态】
  • 原文地址:https://www.cnblogs.com/han6054/p/5346737.html
Copyright © 2020-2023  润新知