- 在给一个对象不存在的属性设置值的时候,不会去原型对象中查找,如果当前对象没有就会给当前对象新增一个不存在的属性
- 由于私有属性的本质就是一个局部变量,并不是真正的属性,所以如果通过
对象.xxx
的方式是找不到私有属性的,所以会给当前对象新增一个不存在的属性
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JavaScript-私有属性注意点</title>
<script>
function Person() {
this.name = "BNTang";
let age = 34;
this.setAge = function (myAge) {
if (myAge >= 0) {
age = myAge;
}
}
this.getAge = function () {
return age;
}
this.say = function () {
console.log("hello world");
}
}
let obj = new Person();
// 1.操作的是私有属性(局部变量)
obj.setAge(-3);
console.log(obj.getAge());
// 2.操作的是公有属性
obj.age = -3;
console.log(obj.age);
</script>
</head>
<body>
</body>
</html>
![image-20210904213808760](https://img2020.cnblogs.com/blog/2105804/202109/2105804-20210904213809094-541930298.png)
![image-20210904213620054](https://img2020.cnblogs.com/blog/2105804/202109/2105804-20210904213620484-99185962.png)