JavaScript-私有属性注意点

  1. 在给一个对象不存在的属性设置值的时候,不会去原型对象中查找,如果当前对象没有就会给当前对象新增一个不存在的属性
  2. 由于私有属性的本质就是一个局部变量,并不是真正的属性,所以如果通过 对象.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

image-20210904213620054

posted @ 2021-09-04 21:39  BNTang  阅读(57)  评论(0编辑  收藏  举报