zoukankan      html  css  js  c++  java
  • TypeScript完全解读(26课时)_7.ES6精讲

    ES6精讲 - 类Class基础

     

    es5中创建构造函数和实例

    原来在es5中的写法

    定义好Point后,在原型对象上定义getPostion的方法

    实例自身是没有这个方法的,我们调用的时候会去创建他的构造函数上原型上往上寻找。原型也就是__proto__

    输出的结果

    调用getPosition方法

    es6中

    有了类的概念用class去定义一个类。

    constructor是构造函数,this指向创建的实例。每个类的定义必须有constructor方法,若果你在定义类的时候没有写构造函数,它也会默认加上一个空的

    getPosition方法是创建在Point的原型对象上的

    多个方法之间可以用分号隔开,切记不要用逗号

    也可以自己去返回一个对象

    自己定义了return的返回,那么创建的实例就不再是你的实例了。这里我们使用instanceof来检测一下。返回的是false。我们创建的结果并不是你的类的实例的对象

    es6中的类必须使用new 关键字去创建

    生成的实例上添加属性或者方法

    判断是否是实例上自身有的属性用hasOwnProperty,返回的结果是true说明自身就有这个属性

    方法不是自有属性

    getPostion实际上是p1继承来的。在原型__proto__上判断有没有这个属性getPosition返回true

    取值函数get,存值函数set

    es6中加入了set和get关键字,来看下他们是怎么使用的

    设置为19

    看完这个例子大概就知道set和get大概是干嘛的。把一个属性age拆开成两个存取值函数。

    当我们去读取属性值的时候,就会调用get修饰的方法。

    当我们给这个属性赋值的时候就会调用set修饰的方法,set修饰的方法有个参数newValue 就是新赋的值

    在es6中类也可以使用set和set修饰

    访问属性值

    class表达式

    函数有两种定义形式

    class也有两种形式的定义:

    第一种

    第二种方式

    最后实际的类型是Infos

    静态方法

    直接定义在类里面的方法都会被实例继承,如果不希望实例继承某个方法,只想这个方法被类本身调用的时候,就需要将方法标记为静态方法

    使用static关键字来标识一个静态方法

    每个类里面都有一个name属性

    es5里面定义一个函数,打印出函数的name

    只能Point自己调用。这就是静态方法的定义

    实例属性的其他写法

    这里定义的类,要添加到类上的属性都是通过this来添加

    另外一种写法在 constructor的外面,并且给了z的初始值为0。这里因为没有安装es的loader所以只能在浏览器里面执行

     静态属性

    es6中只有静态方法,并没有静态属性

    通过这种形式可以实现静态属性

    私有方法

    目前es6并不提供私有方法、私有属性,需要使用一些技巧来实现

    把方法定义在外面

    通过实例是没有办法拿到func2的

    第三种方式,用到es6中新增的基本数据类型symbol,唯一性,独一无二的

    这里的p是没有办法拿到func1方法的

    创建a.js

    如果想调用必须拿到symbol值才可以调用,这就是通过symbol值定义私有方法

    私有属性

    就是属性前面加#号,处于提案阶段,暂时还没法使用

    new.target

    es6中新增的,一般用于构造函数中,返回new命令作用于的构造函数

    new.target就表示构造函数

    普通的调用方式

    同样在类中也可以使用new.target

    定义父类,子类继承父类

    虽然是在父类中使用的new.target.这里的原因下节课学习了继承就清楚了

    利用这个特点,我们就可以实现,定义一个类,这个类不能直接用来创建实例,只能通过继承它的子类来实例化

    父类就会有异常

  • 相关阅读:
    sencha touch 入门系列 (四)sencha touch 新建项目目录结构解析
    sencha touch 入门系列 (三)sencha touch 项目创建
    sencha touch 入门系列 (二)sencha touch 开发准备
    sencha touch 入门系列 (一)sencha touch 简介
    Android Weak Handler:可以避免内存泄漏的Handler库
    Android 中的冷启动和热启动
    Android4.0以上版本比较靠谱的获取手机屏幕分辨率的方法
    Android studio 获取每次编译apk时的日期
    android瓦片地图技术研究
    Android中的各种访问权限Permission含义
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/10817355.html
Copyright © 2011-2022 走看看