01- 原型链
<script>
// 原型 链 :原型形成了一个链条
// 原型链的价值:实现继承效果
// 凡是在原型链的东西:构造函数产生的对象,都可以访问
// 原型对象:挂载函数,给对象使用
function CreateStudent(name, age) {
this.name = name
this.age = age
}
let s1 = new CreateStudent('张三', 18)
console.log(s1)
// 1. 自己原型里面的方法:可以访问
CreateStudent.prototype.say = function () {
console.log(this.name + '正在说话')
}
s1.say()
// 2. 只要在原型链上的东西:都可以访问
console.log(s1.toLocaleString())
// 需求:要求,所有的数据都可以访问一个叫做gun的方法
// 解决方案:给顶级原型对象挂载gun方法
Object.prototype.gun = function () {
console.log(this.toString() + '我正在滚')
}
s1.gun()
let num = 1
num.gun()
let str = '123'
str.gun()
let arr = ['a', 'b', 'c']
arr.gun()
</script>
02-原型对象与构造函数Object的原型关系
03-顶级构造函数Function与构造函数的原型关系
05-原型三角关系链
注意:
1.原型对象自己一定要有constructor属性,如果找上级的constructor,一定不能省略__proto__
2.原型对象不能独立存在
3.访问:构造函数.prototype