zoukankan      html  css  js  c++  java
  • class基本使用

    console.log(`
    1.创建一个空对象
    2.让this 指向刚刚创建好的空对象
    3.执行构造函数内的代码 (为相关的属性和方法赋值)
    4.返回创建好的对象`)
    // 1.创建一个空对象
    // 2.让this 指向刚刚创建好的空对象
    // 3.执行构造函数内的代码 (为相关的属性和方法赋值)
    // 4.返回创建好的对象
    // new 一个对象的过程 就是实例 
    function Person(name,age){
        this.name = name
        this.age = age
    }
    // info 属性,直接挂载给了构造函数,所以它是静态属性
    Person.info = 'aaaa'
    //实例方法
    Person.prototype.say = function(){
        console.log("这是Person的实例方法");
        
    }
    Person.show = function(){
        console.log("这是Person的静态show方法");
        
    }
    const p1 = new Person("许三多",18)
    console.log(p1)//实例属性
    console.log(Person.info);//静态属性
    //通过 new 出来的实例,访问到的属性,叫做[实例属性]
    //通过构造函数,直接访问到的属性,叫做[静态属性]
    console.log(p1.name);
    p1.say();//实例方法
    Person.show();//静态方法
    
    console.log('=================class===================');
    // 
    // 实例成员:使用实例对象(实例)来调用的属性和方法(只能使用new创建出来的对象)
    // 静态成员:只能使用构造函数名进行 调用和 创建的 属性或者方法
    // class ----------------------------------------------------
    //创建一个动物类
    // 注意1:在 class 的 { } 区间内,只能写 构造器、静态方法和静态属性、实例方法
    // 注意2:class 关键字内部,还是用 原来的配方实现的;所以说,我们把 class 关键字,称作 语法糖;
    class Animal {
        //这是勒种的构造器
        //每个类中都有一个构造器如果程序员没有手动指定构造器,那么,可以认为类内部有一个隐形的构造器
        //类似如: constructor(){}
         // 构造器的作用,就是,每当 new 这个类的时候,必然会优先执行 构造器中的代码
        constructor(name,age){
            //实例属性
            this.name = name
            this.age = age 
        }
        // 在 class 内部,通过 static 修饰的属性,就是静态属性
        static info = "eeeee"
        static show(){
            console.log("这是动物的静态方法"); 
        }
        wow(){
            console.log("动物的实例方法");
        }
    }
    const a1 = new Animal("黄",3)
    console.log(a1);
    console.log(a1.name);//实例属性
    a1.wow();//实例方法
    console.log('====================================');
    console.log(Animal.info);//info 是Animal静态属性
    Animal.show();
    console.log('====================================');
     
    

      

    class Animal {
        constructor(name,age){
            //实例属性 因为这些通过this挂载的属性,都是通过new出来的实例访问的
            this.name = name
            this.age = age
        }
        //实例方法
        say(){
            console.log('实例say方法')
        }
    //--------------------------------------------------
    //如果要定义静态属性,则需要和constructor,并且这个属性需要被static关键字修饰
    //静态属性的定义:无法通过实例访问,只能通过类名的访问
        static info = {
            address:"上海",
            location:"宝山"
        } 
        static show(){
            console.log("静态的show方法")
        }  
    }
    const a1 = new Animal("小黄",2)
    console.log(a1)
    console.log(a1.name)//通过实例直接访问的实例属性
    a1.say()//通过 实例,直接访问实例方法  实例的挂载在__proto__
    console.log('====================================');
    console.log(Animal.info)//通过类名,直接访问静态属性
    Animal.show()//通过类名,直接访问静态方法
    // 实例的 属性 或 方法,都是 通过 new 出来的实例对象来访问的;
    // 静态的属性 或方法,都是 直接通过 类名 来访问的;(表现形式:通过 static 来修饰)
    

      

  • 相关阅读:
    [转]web串口调试助手,浏览器控制串口设备
    [转]WEB页获取串口数据
    [转]js串口通信 调用MSCOMM32控件 链接电子秤
    [转]C# serialPort 串口接收中this.Invoke的使用
    [转]C#串口通信 SerialPort类
    [转]How to display the data read in DataReceived event handler of serialport
    [转]c# System.IO.Ports SerialPort Class
    [转]用C#在windows上操控电脑自带蓝牙(入道指南)
    Springboot Actuator之四:重写与注册服务中心的健康检查逻辑(判断依据是tcp连接是否正常)
    二维码支付原理分析及安全性的探究
  • 原文地址:https://www.cnblogs.com/tuziling/p/10746678.html
Copyright © 2011-2022 走看看