美文网首页
2-2+2-3+2-4+2-5【原型】-深度透彻掌握原型

2-2+2-3+2-4+2-5【原型】-深度透彻掌握原型

作者: 孙悟空SUN | 来源:发表于2021-12-28 15:23 被阅读0次

慕课TS高级课程

第二章 深度掌握TypeScript OOP

2-10 TS 类 和 ES6 类对比

1. 为什么要理解 TS 类和 ES6 类的区别

 TS 类和 ES6 类 看着很像,但又有很多不同,区分 TS  类 和 ES6 类,既可以让我们 对 TS 类 的优势印象更深刻,也会减少 TS 类 和 ES6 类 概念上的混淆。

2. 定义类属性的方式不同

(1)TS 类有多种定义属性的方式,如下:

方式1:先在类中定义属性然后在构造函数中通过 this 赋值;

方式2:构造函数直接为参数增加 public,给构造器的参数如果加上 public,这个参数就变成了一个属性,

默认构造函数会给这个属性赋值[隐式操作],以上节课的 Order 类为例,具体代码如下:

class Order {
    constructor(public orderId: number, public date: Date,public custname: string,
        public phone: string, public orderDetailArray: Array<OrderDetail>) {
        // 无需this赋值
     }
     ......
 }    

(2)ES6 依然沿袭了 JavaScript 赋值的方式,在构造函数直接 this 来定义属性并赋值,代码如下:

class Order {
    constructor(orderId, date, custname, phone, orderDetailArray) {
        this.orderId = orderId;
        this.date = date;
        this.custname = custname;
        this.phone = phone;
        this.orderDetailArray = orderDetailArray;
    }
}

3. ES6类没有访问修饰符,TS类自带访问修饰符

ES6类暂时还没有访问修饰符【public protected private】这也让 ES6 类设置访问权限变的异常麻烦,即使借助call 方法或者 symbol 类型设置了访问权限局限性也很大,其实也并没有真正彻底解决访问权限的问题。这点让ES6类在项目中对属性和方法的权限控制很受限制。 TS 类却自带 public protected private 三种访问权限,设置访问权限轻松自如。【不设置默认访问权限为 public 】 理解访问修饰符很简单,后面我们讲解完继承后再讲解,大家很快会理解。

4. TS 类是静态类型语言的类,而 ES6 类按照 JavaScript 的一个语法标准设计而成

TS 是静态类型语言,具有类型注解和类型推导的能力,项目上线后隐藏语法和类型错误的的风险几乎为零,而ES6 是 JavaScript 的一个语法标准,没有数据类型检查的能力,举一个简单例子来说明问题。

  // ES6
  const x = 3;
  x = 10; // ES6没有任何语法错误提示
  
  // TS
  const x = 3;
  x = 10;//无法分配到 "x" ,因为它是常数。

5. TS类可以生成ES5或ES6或以上版本的js文件

通过设置 tsconfig.json 文件的 target 属性值为 ES6,那么生成的js文件就是 ES6 版本的js文件

相关文章

  • 2-2+2-3+2-4+2-5【原型】-深度透彻掌握原型

    慕课TS高级课程 第二章 深度掌握TypeScript OOP 2-10 TS 类 和 ES6 类对比 1. 为...

  • Axure 交互原型基础篇

    交互原型软件,就两点:原型(线框图)和交互,原型是形,交互是质,掌握原型比较简单,只要掌握各个元器件的基本...

  • 四、原型模式与建造者模式详解

    5.原型模式 5.1.课程目标 1、掌握原型模式和建造者模式的应用场景 2、掌握原型模式的浅克隆和深克隆的写法。 ...

  • 原型&原型链深度解读

    基本概念 首先我们看上面的示意图,我们可以看到每一个构造函数都会有一个prototype属性(js引擎自动帮我们加...

  • 深度理解原型和原型链

    原型 概念原型是function对象的一个属性,它定义了构造函数构造出对象的共有祖先。通过该构造函数生成的对象可以...

  • 面试总结之基础篇(1)

    深拷贝与浅拷贝 原型与原型链 防抖节流 this 指向 new关键字 深度剖析js闭包

  • 深入理解javascript原型链

    在javascript中原型和原型链是一个很神奇的东西,对于大多数人也是最难理解的一部分,掌握原型和原型链的本质是...

  • 原型与原型链

    在javascript中原型和原型链是一个很神奇的东西,对于大多数人也是最难理解的一部分,掌握原型和原型链的本质是...

  • 原型与原型链

    在javascript中原型和原型链是一个很神奇的东西,对于大多数人也是最难理解的一部分,掌握原型和原型链的本质是...

  • 产品经理究竟该如何进行原型设计(下)

    接着上篇《产品经理究竟该如何进行原型设计(上)》。 我们已经了解了原型的相关知识,也掌握了如何熟练地使用一款原型设...

网友评论

      本文标题:2-2+2-3+2-4+2-5【原型】-深度透彻掌握原型

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