zoukankan      html  css  js  c++  java
  • 声明提前、原型、静态方法的一些所得

    一、声明提前:

    声明提前有3个过程:创建、初始化、赋值:

    console.log(x);    // undefined
    function xxx(){};
    var x=10;
    
    // 等同于
    var x=undefined;    // 创建并初始化
    function xxx(){};
    x=10;    // 赋值

    然而let只创建不赋值:

    console.log(x);    // 报错
    let x=10;
    function xxx(){};
    
    // 等同于
    let x;
    function xxx(){};

    二、原型

    通常我们会这样创建一个对象:

    var Plane=function(){
        this.name='plane';
    }
    
    var plane=new Plane();
    plane.name='plane1';

    我们除了通过new一个实例外,还可以通过克隆:

    var plane2=Object.create(plane);

    我们在JavaScript遇到的每个对象,实际上都是从Object.prototype对象克隆而来的,Object.prototype就是它们的原型。用new运算符来创建对象的过程,实际上也只是先克隆Object.prototype对象,再进行一些其他额外操作的过程。

    JavaScript给对象提供了__proto__,某个对象的__proto__属性默认会指向它的构造器的原型对象:

    function Animal(name){
         this.name=name;
    }
    
    var dog=new Animal();
    console.log(dog.__proto__===Animal.prototype);    // true

    三、静态方法

    通过static定义鼎泰方法,静态方法可以直接调用:

    class Animal{
        spaeak(){
            return this;
        }
        static eat(){
            return this;
        }
    }
    
    Animal.speak();    // 报错
    Animal.eat();    // 直接调用
  • 相关阅读:
    POJ 2955 Brackets 区间DP
    POJ 3311 Hie with the Pie 最短路+状压DP
    POJ 3615 Cow Hurdles(最短路径flyod)
    hdu 3790 最短路径dijkstra(多重权值)
    poj 3254 Corn Fields 状压DP
    状压DP
    poj2411 Mondriaan's Dream 状压DP
    M: Mysterious Conch 字符串哈希
    哈希(hash)理解
    域渗透:GPP(Group Policy Preferences)漏洞
  • 原文地址:https://www.cnblogs.com/jingouli/p/11355203.html
Copyright © 2011-2022 走看看