<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1.0,maximum-scale=1,minimum-scale=1,user-scalable=no"
/>
<title>`构造函数+原型`.html</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
</style>
</head>
<body>
<script>
// 构造函数 + 原型 搭配来使用
// 原型 本质 是一个对象
// 当我们在创建一个 构造函数的时候 原型 被创建
// 如果我们在原型对象上 增加一个属性或者方法 那么实例 拥有所增加的方法
// 原型 就是 DNA 构造函数 父亲 实例 孩子
// function Person() {
// this.b = function () {};
// }
// // 访问原型
// // console.log(Person.prototype);
// Person.prototype.a = function () {
// console.log('这个是a方法');
// };
// const p1 = new Person();
// // console.log(p1);
// p1.a();
// function Obj() {
// }
// Obj.prototype.a=function(){
// }
function Person() {
this.hair = 100;
// this.decrease = decrease;
}
Person.prototype.decrease = function () {
this.hair--;
};
/*
1 原型 本质是一个对象 在我们创建构造函数的时候就拥有
2 在原型上添加的一些方法,可以直接被 实例所使用和共享
3 可以这么理解 构造函数=父亲 实例=孩子 原型=DNA
4 使用面向对象的方式来创建对象
1 构造函数内部 来定义 非函数类型的属性 如 姓名 身高 肤色 性别
2 原型来定义 函数类型的属性 函数
*/
</script>
</body>
</html>