1. プロトタイプ オブジェクト: 関数が作成されると、システムはプロトタイプ オブジェクトと呼ばれる対応するオブジェクトを自動的に作成します。
2. プロトタイプオブジェクトの役割: コンストラクターのメモリ浪費 + 変数汚染を解決する
3. コンストラクター、プロトタイプオブジェクト、インスタンスオブジェクトの関係
- プロトタイプ: コンストラクターに属し、プロトタイプ オブジェクトを指します。
- * コンストラクターのメモリ浪費 + 変数汚染を解決
- __proto__: インスタンス オブジェクトに属し、プロトタイプ オブジェクトを指します
- * インスタンス オブジェクトがプロトタイプのメンバーに直接アクセスできるようにする
- コンストラクター: プロトタイプ オブジェクトに属し、コンストラクターを指します。
- * インスタンス オブジェクトがどのコンストラクターによって作成されたかを認識できるようにします
//1.构造函数
function createP (name, age, sex) {
this.name = name
this.age = age
this.sex = sex
}
//2.原型对象
console.log(createP.prototype);
//给原型对象添加方法
createP.prototype.eat = function () {
console.log('吃东西')
}
createP.prototype.learn = function () {
console.log('学习')
}
//3.实例对象
let p1 = new createP('张三', 20, '男')
let p2 = new createP('李四', 22, '男')
// console.log(p1, p2);
//实例对象可以直接调用原型对象里的方法
p1.eat()
p2.learn()