首页 > 其他分享 >Es6面型对象 class类

Es6面型对象 class类

时间:2022-11-11 16:13:03浏览次数:65  
标签:Es6 20 name age 面型 constructor class log

在js中,function可以看做为方法,构造函数可以看做为类

在Es6中,class(类)作为对象的模板被引用,可以通过class关键字定义;class的本质是function

Es5就支持class概念

贴点:

    1. 类声明不可以重复

    2. 类必须使用new 调用,否则会报错

    3. 类中创建方法,但方法不需要function关键字,方法中的属性,每个方法间不能加逗号

    4. 类定义不会被提升,必须在访问前对类进行定义,否则就会报错

class 类声明

class Person {  //定义了一个名字为Person的类
    constructor(name, age) {    //constructor是一个构造方法,用来接收参数
        this.name = name;   //this代表的是实例对象
        this.age = age;
    }
    say() { //这是一个类的方法,注意千万不要加上function
        return "我的名字叫" + this.name + "今年" + this.age + "岁了";
    }
}
const person = new Person("默永", 20);
console.log(person.name, person.age);   //默永 20
console.log(person.sayName());  //我的名字叫默永今年20岁了

class 继承

class Person {
    constructor(name) {
        this.name = name
    }
    sayName() {
        return "我的名字叫" + this.name + "今年" + this.age + "岁了";
    }
}
// 关键字extends继承
class Son extends Person {
    constructor(name, age) {
        super(name)
        this.age = age
    }
    // 静态方法static
    // 如果一个方法前加上static关键字,就表示是静态方法
    // 静态方法不能被实例调用(在该类之外调用)
    // 用类Son调用静态方法likedog
    static nameAge() {
        return 'static';
    }
}
const son = new Son("默永", 20);
console.log(son.name, son.age); //默永 20
console.log(son.sayName());  //我的名字叫默永今年20岁了
// 用类Son调用静态方法nameAge
console.log(Son.nameAge()); //static

constructor方法如果没有显式定义,会隐式生成一个constructor方法。所以即使你没有添加构造函数,构造函数也是存在的。constructor方法默认返回实例对象this,但是也可以指定constructor方法返回一个全新的对象,让返回的实例对象不是该类的实例。

class Desk{
    constructor(){
        this.xixi="我是一只小小小小鸟!哦";
    }
}
class Box{
    constructor(){
       return new Desk();// 这里没有用this哦,直接返回一个全新的对象
    }
}
var obj=new Box();
console.log(obj.xixi);//我是一只小小小小鸟!哦

构造函数

构造函数

 

标签:Es6,20,name,age,面型,constructor,class,log
From: https://www.cnblogs.com/Lmyong/p/16880810.html

相关文章

  • C#1.0-类 Class
    interfaceIEat{voidEatFood();}interfaceIDrink{voidDrink();}///<summary>///生物类///</su......
  • Android错误之--ActivityManager: Error: Activity class {com.borrowbook.activity
    运行程序出现如下问题:解决办法:1.clean项目2.在AndroidManifest.xml文件中查看主Activity的名字前是否有'.'符号那么我们检查AndroidManifest.xml文件,将提示重复的删除一个即......
  • 蛋疼的Caused by: java.lang.ClassNotFoundException
    开发中最长遇到的错误提示,遇到这种错误提示,一般可能有:1.忘记在AndroidManifest中配置,这个很好解决,在里面配置一下就行了。2.更常见的问题是在引入外包时出现这个问题,怎么解......
  • CS1752 无法嵌入互操作类型“XXXXClass“。请改适用的接口
    在打开.Net项目时应用其他库有的提示这个问题,这个原因是由于引入的属性中,有一个“嵌入操作类型”设置 设置为false即可。......
  • C++ __autoclassinit2
    环境:VS2022 Version17.4.0操作系统:Windows10EnterpriseLTSC 19044.2193今天在写一个类的时候调试偶然看到__autoclassinit2这个东西发现一旦类中定义有指针变......
  • 举例说明了十大ES6功能
    虽然ES6规范不是最近才发布,但我认为很多开发人员仍然不太熟悉。主要原因是在规范发布之后,Web浏览器的支持可能很差。目前,规范发布已经超过2年了,现在很多浏览器对ES6支持......
  • ingressClassName
    一、ingressClassName作用可以指定ingresscontroller不能不写,也不能乱写之前部署的ingress-nginx,这里就要写nginx二、由于之前没有添加这个字段,访问的时候报404错......
  • simpread-(128 条消息) js 函数柯里化 + class + async await 思想封装我们的 Api_fro
    柯里化所谓"柯里化",就是把一个多参数的函数,转化为单参数函数在项目中,例如定义了如下请求接口的方法:类中也是可以使用async和await1.柯里化封装之前//a.js文......
  • 另类在线编程Classroom for Github
    说到Github,我们一般认为它是一个软件工程师共享、塑造以及合作代码的平台,但你可能想不到它也是教人学软件编程的好地方,现在GitHub已经有了在线教育服务了!近年来,大量......
  • java.sql.SQLException: java.lang.ClassCastException:java.math.BigInteger cannot
    错误原因:由于在IDEA中导入的驱动包的版本和数据库的版本不匹配解决方案:​​数据库官网中下载与数据库配套的Jar包,重新导入就可以了​官网:​​https://dev.mysql.com/downloa......