1. new 操作符
new X() 自动做了四件事情:
- 自动创建空对象;
- 自动为空对象关联原型,原型地址指定为 X.prototype;
- 自动将空对象作为 this 关键字运行构造函数;
- 自动 return this
2. 构造函数 X
- 可以构造出对象的函数叫做构造函数
- X 函数本身负责给对象本身添加属性
- X.prototype 对象负责保存对象的公共属性
原型公式:对象 .__proto__===其构造函数.prototype
3.用 prototype 创建一个构造函数
function Person(name,age){ // 创建一个构造函数 Person, P 必须大写,两个形参 name 和 age
this.name = name; // 形参 name 赋值给新对象,因为新对象还没有被创建,所以用 this 表示新对象
this.age = age;
}
Person.prototype.sayHi = function(){ // 该构造函数里面的函数
console.log('你好,我叫'+this.name)
}
let person1 = new Person('潘',20) // 此处用到了new 操作符,创建出一个新的对象 person1
person1 // 获取 person1
Person {name: "潘", age: 20} // 得到 person1 的两个属性和属性值
person1.sayHi() // 执行 person1 里面的函数
你好,我叫潘
4. 用 class 创建一个构造函数
class Person{ // 创建一个叫 Person 的构造函数
constructor(name,age){ // 创造该构造函数需要用到的形参
this.name = name;
this.age = age
}
sayHi(){ // 该构造函数里面的函数
console.log('你好,我叫'+this.name)
}
}
let person2 = new Person('江',18)
person2
Person {name: "江", age: 18}
person2.sayHi()
你好,我叫江