9、对象的结构
对象中存储属性的区域实际有两个:
对象自身
- 直接通过对象所添加的属性,位于对象自身中 - 在类中通过 x = y 的形式添加的属性,位于对象自身中
原型对象(prototype)
- 对象中还有一些内容,会存储到其他的对象里(原型对象) - 在对象中会有一个属性用来存储原型对象,这个属性叫做__proto__ - 原型对象也负责为对象存储属性, 当我们访问对象中的属性时,会优先访问对象自身的属性, 对象自身不包含该属性时,才会去原型对象中寻找 - 会添加到原型对象中的情况: 1. 在类中通过xxx(){}方式添加的方法,位于原型中 2. 主动向原型中添加的属性或方法
<script>
class Person {
name = "孙悟空"
age = 18
// constructor(){
// this.gender = "男"
// }
sayHello() {
console.log("Hello,我是", this.name)
}
}
const p = new Person()
// p.address = "花果山"
// p.sayHello = "hello"
console.log(p.sayHello)
</script>