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();    // 直接调用
  • 相关阅读:
    事件
    10- JMeter5.1.1 工具快速入门
    06- Linux Ubuntu下sublime下载与使用与安装包
    控件是什么意思?
    09- 性能测试关键指标
    08- Tomcat入门与环境搭建部署
    07- HTTP协议详解及Fiddler抓包
    06- web兼容性测试与web兼容性测试工具
    05- web网站链接测试与XENU工具使用
    04- cookie与缓存技术
  • 原文地址:https://www.cnblogs.com/jingouli/p/11355203.html
Copyright © 2011-2022 走看看