Javascript
ES6 的类
+ 我们在 ES5 之前, 我们就用 函数 来充当 构造函数(类)
+ ES6 引入了一个 类 的概念
=> 就是使用一个新的关键字来定义 构造函数(类)
=> 定义完毕后, 就是一个类, 不能当作函数来调用
=> 只能通过 new 来得到一个对象
function Person(){
this.name = 'Jack'
this.age = 18
}
let p1 = new Person()
console.log(p1)
// 本质还是一个函数, 是一个函数就可以直接调用
// 当你将他当作普通函数来执行的时候
// 没有了创造对象的能力, this 指向改变了
Person() // this => window, 所以属性就加到 window 上了
不严谨
类的语法:
+ 定义一个类
=> 语法: class 类名 {
// 构造器, 我这个类创造的对象里面有哪些属性
constructor(){
this.name = xxx
this.age = xxx
}
// 直接书写原型上的方法
init(){} // 原型上的方法 init
}
+ 注意: 一个 class 定义的 类 不能被当作普通函数执行
=> 不和 new 连用就报错
class Person{
// 构造器, 等价于我们的 构造函数体
constructor(name, age){
this.name = name
this.age = age
}
// 原型上的方法 不再需要 function 关键字, 也不需要逗号
init(){}
setScale(){}
move(){}
}
// 使用 Person 类去创建对象
let p1 = new Person('Jack', 18)
console.log(p1)
// 不和 new 连用就报错
Person()