类是一个特殊函数,定义、更新、声明函数,特性封装、继承、多态;
访问修饰符:public private protected
class 中成员变量、成员方法默认都是公共的
public:语法糖,声明公共成员变量及constructor 传参初始化公共成员变量的语法糖
公共成员变量,可以在实例化对象-key方式直接更新、获取
private:私有成员变量,仅在class内部使用,外部无法直接访问;可以在class内部暴露公用成员方法,更新或者取值;
Class 类
class的类比
访问修饰符修饰参数public、private、protected时,自动生成对应的成员变量
JavaScript中的构造函数不可以重载
class特点
Class类
ES的构造函数不可以重载,即一个类中有且仅有一个构造函数,可以使用?指明参数非必填,或者默认值等方法
构造函数中使用访问修饰符时,TypeScript会自动给创建成员变量,自己没有感觉到有什么实际意义,懒不一定是个好事
构造函数构造函数
object
使用object类型时内部结构并不清晰,不会对代码类型校验有任何帮助
相当于指定了一个{},使用几率较少
Interface
interface Point {
x: number,
y: number
} // 高内聚 (把相关联的模块写在一起),低耦合
class
紧密相关的属性和函数的集合
interface Ipoint {
x: number,
y: number,
drawPoint: ()=> void;
getDistance: (p: Ipoint) => number;
}
class Point implements Ipoint {
x: number;
y: number;
drawPoint = ()=>{
}
getDistance = (p: Ipoint) => {
return Math.pow(p.x - this.x, 2) + Math.pow(p.y - this.y, 2)
}
}
通过构造函数对class值进行初始化和启用默认值,javascript不支持重载,有且仅有一个构造函数
ps:构造函数的参数加上关键字public,private,
使用构造函数的参数签名实现重载
利用构造函数生成模板代码
在typescript中,通过使用访问修饰符,在声明构造函数的同时,顺便完成成员变量的声明以及初始化。
修饰符:public、private、protected
对象是什么?而对是如何被面对呢?
公有属性:大家都知道,都能看到
私有属性:只有自己知道
传参:外部给予的
成员方法:通用的,通有的
私有成员方法:只有自己有的方法
封装:外部不关心的,这些动作发生的时候,对具体细节具体过程的隐藏
继承:后代的继承
多态:后代独有的
class 类 官方文档:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes
class官方定义:在JavaScript中,类是一个特殊的函数,在这个函数中不仅可以定义函数表达,也可以声明这个函数,在类的语法中包含两个部分,定义与声明。
class的形象定义
class
class理解
这个比喻人才啊