美文网首页
第3章 ES6类(Class)使用

第3章 ES6类(Class)使用

作者: C_Z_Q_ | 来源:发表于2020-03-08 20:18 被阅读0次

目标

  • Class基本语法
  • constructor方法

类的实例对象

1、Class基本语法
js传统创建新对象的方法

    <script type="text/javascript">
        function Point(x, y) {
          this.x = x;
          this.y = y;
        }
        Point.prototype.toString = function () {
          return '(' + this.x + ', ' + this.y + ')';
        };
        var p = new Point(1, 2);
        console.log(p.toString());

    </script>

ES6提供了更接近传统语言的写法,引入了Class(类)这个概念,作为对象的模板。通过class关键字,可以定义类。
基本上,ES6的class可以看作只是一个语法糖,它的绝大部分功能,ES5都可以做到,新的class写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已。
上面的代码用ES6的“类”改写,就是下面这样:

<script type="text/javascript">
    class Point{
        constructor(x,y) {
            this.x=x;
            this.y=y;
        }
        toString(){
            return '(' + this.x + ', ' + this.y + ')';
        }
    }
    var p1=new Point(120.3,40.1);
    alert(p1.toString());
</script>

说明:上面代码定义了一个“类”,可以看到里面有一个constructor方法,这就是构造方法,而this关键字则代表实例对象。也就是说,ES5的构造函数Point,对应ES6的Point类的构造方法
Point类除了构造方法,还定义了一个toString方法。注意,定义“类”的方法的时候,前面不需要加上function这个关键字,直接把函数定义放进去了就可以了。另外,方法之间不需要逗号分隔,加了会报错

constructor
1、constructor 方法是类的构造函数,是一个默认方法,通过 new 命令创建对象实例时,自动调用该方法。见上面的例子
2、一个类必须有 constructor 方法,如果没有显式定义,一个默认的 consructor 方法会被默认添加。所以即使你没有添加构造函数,也是会有一个默认的构造函数的。

 constructor( ){}

3、一般 constructor 方法返回实例对象 this ,但是也可以指定 constructor 方法返回一个全新的对象,让返回的实例对象不是该类的实例。 相当于在一个类里创建了另外一个类

<script type="text/javascript">
    class Cat{
        
    }
    class Dog{
        constructor() {
          return new Cat();
        }
        
    }
    var dog=new Dog();
    alert(dog instanceof Dog);//false
</script>

类的构造函数,不使用new是没法调用的,会报错。这是它跟普通函数的一个主要区别,普通函数不用new也可以执行。

类的实例对象
生成类的实例对象的写法,与ES5完全一样,也是使用new命令。如果忘记加上new,像函数那样调用Class,将会报错

    var p1=new Point(120.3,40.1);//正确
    var p2=Point(120.3,40.1);//错误

作者:wqjcarnation
链接:https://www.jianshu.com/p/00b0a42d8762
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相关文章

  • ES6 class与继承

    class是什么 class是定义类的方法。ES6之前用构造函数的方式定义类,ES6引入了class。 class...

  • 深入理解JS面向对象 - JavaScript实现继承的五种方式

    一、类与实例 1. 类的声明 传统function类的声明 ES6中的class声明 1.1 ES6 class与...

  • 面向对象

    javascript在ES6之前是没有办法定义一个类的,使用构造函数模拟类的概念 ,class ES6已经有类 ...

  • ES6中类与类的继承

    ES6以前,javascript中类的继承可以使用function和原型prototype来模拟类class来实现...

  • JavaScript装饰器的使用

    JavaScript装饰器的使用 随着ES6的广泛使用,class 类的概念在javascript中出现,而在某些...

  • 2JavaScript设计模式--class/extends

    ES6语法 类 class ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象的模板...

  • react组件

    es6 的class类的继承 运用es6 class继承 通过继承React.Component类来定义一个组件

  • wepy脚手架工具

    学习目标 使用wepy框架开发小程序 = 了解ES6中的class类 . 轮播图组件的使用 使用flex布局...

  • 第三十二节: ES6 Class类

    1. ES6 Class 类 ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象的模板...

  • 第三十二节: ES6 Class类

    1. ES6 Class 类 ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象的模板...

网友评论

      本文标题:第3章 ES6类(Class)使用

      本文链接:https://www.haomeiwen.com/subject/oxbjdhtx.html