<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// 我们知道 对象身上一定有一个_proto_ 函数身上一定一个prototype
// prototype
// 每一个函数身上都有一个天然的prototype 是一个函数空间
// 既然每一个函数都有,构造函数也是函数,我们就利用这个空间
// 通过 函数.prototype.复杂数据类型名 = 复杂数据类型值
// 原型的出现是为了解决构造函数添加方法的缺陷,每一次都开辟新的内存空间造成内存浪费
// 于是js给我提供了一个给对象添加复杂数据类型的方法
// 不然构造函数只能给对象添加属性不能合理的添加复杂数据类型
function Person(name) {
this.name = name
}
Person.prototype.age = 12
Person.prototype.sayHi = () => {
console.log('hello 原型上的sayHi方法')
}
console.dir(Person)
let p1 = new Person(1)
console.log(p1.sayHi)
let p2 = new Person(2)
console.log(p2.sayHi)
</script>
</body>
</html>