ES6 class关键字
构造函数
// 构造函数
class Person{
constructor(name,age){
console.log("我是构造函数,我默认在new这个类的实例的时候调用")
this.name = name;
this.age = age
}
say() {
console.log(`我的名字是${this.name},我今年${this.age}岁了`);
}
}
//并没有显式调用constructor这个方法
/*
constructor:构造函数
作用:初始化类的属性,默认调用
*/
var p = new Person("郑晓龙",18);
p.say();
constructor构造函数
不会显式调用,默认在new 实例时调用
new 关键字
var p = new Person("郑晓龙",18);
p.say();
构造函数和普通函数的区别就在这个new操作符里,用new操作符创建对象时发生的事情:
- 第一步: 创建一个Object对象实例。
new Object()
- 第二步: 将构造函数的执行对象赋给新生成的这个实例。
// window.Person()
Object.Person()
- 第三步: 执行构造函数中的代码
this.name = name; <==> Object.name = name
- 第四步: 返回新生成的对象实例
注意:如果被调用的函数没有显式的 return 表达式(仅限于返回对象),则隐式的会返回 this 对象, 也就是新创建的对象。