首页 > 其他 > 详细

Typescript中class的码源分析

时间:2019-02-17 13:13:08      阅读:215      评论:0      收藏:0      [点我收藏+]

学习Typescript是一个很好的体验,一方面我们可以使用更加规范的代码去编程,另一方面,我们可以通过typescript的学习来加强对js的理解。

js中没有类的概念,它使用引用类型来封装对象,引用类型的定义依赖构造函数,所以我们在js中使用对象一般是先定义构造函数,然后使用new操作符进行实例化。

typescript中的class也是这样实现的。

一、Class中的访问修饰符

typescript中class有3种访问修饰符,分别是:

  1. public 声明的属性和方法在类的内部和外部均能访问到。
  2. protected 声明的方法和属性只能在类的内部和其子类能访问。
  3. private 声明的方法和属性只能在其类的内部访问。

对于protected 和 private 是应用在class的继承中,下一篇文章会讲到类的继承。

要说明的是: ts中的class的访问修饰符只在编码阶段有效,在ts编译成js后,是没有作用的。

 1 class Person {
 2     public name: {
 3         firstName: string,
 4         secondName: string
 5     };
 6     protected age: string;
 7     private sex: string;
 8     constructor(name: {firstName: string,secondName: string}, age, sex) {
 9         this.name = name;
10         this.age = age;
11         this.sex = sex;
12     }
13     sayName() {
14         console.log(this.name);
15     }
16 }

编译成js代码的结果:

 1 var Person = (function () {
 2     function Person(name, age, sex) {
 3         this.name = name;
 4         this.age = age;
 5         this.sex = sex;
 6     }
 7     Person.prototype.sayName = function () {
 8         console.log(this.name);
 9     };
10     return Person;
11 }());

可以发现,在编译成js后,是没有体现访问修饰符的

二、Class的原理是使用构造函数模式及原型模式创建引用类型

分析一下

Typescript中class的码源分析

原文:https://www.cnblogs.com/wangtingnoblog/p/10390696.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!