记录自己所学的知识
<!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>
class Xsen{
name='ABC'
age=18
fangfa(){
console.log(`hi~我是:${this.name},今年${this.age}岁`)
}
}
const Ama=new Xsen()
//对象存储属性区域=对象自身+原型对象
/* 关于访问原型对象数据
1.访问对象中的属性时,优先访问它自身属性
2.自身属性里面没有,去原型对象中找
*/
//访问原型对象 ---> 对象.__protp__
//Object.getPrototypeOf(X) 安全
/*原型对象中的数据有两部分
1.对象中的数据(属性,方法等)
2.constractor (对象构造函数)
*/
console.log(Object.getPrototypeOf(Ama) === Ama.__proto__) //访问原型对象两种方法相等
console.log(Ama.__proto__.__proto__.__proto__)
/*原型对象也有原型,构成链,根据复杂度不同,原型链的长度不同,我简单的理解就是俄罗斯套娃,但是套到最后是一定是空null,还没找到你要的娃,返回undefind*/
//在这里Ama的原形链==》 Ama对象-->原型-->原型-->null
console.log(Ama.fangfa())
/*
作用域链与原型链区别
作用域链:找变量的,找不到报错
原型链:找属性的,找不到undefind
*/
</script>
</body>
</html>
别忘记复习~