JavaScript构造函数,原型对象

时间:2022-12-25 14:39:25
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <script>
            //构造函数,用来区分创建的对象,首字母大写,如Person,Animal
            
            //1.构造函数
            function Person(){
                this.name;
            }
            //2.创建新对象(实例化)
            var zs=new Person();
            zs.name="张三";
            //3.返回值返回
            console.log(zs.name);
            
            //.带参,方便对多个对象赋值
            function Person(name,age){
                this.name=name;
                this.age=age;
//                this.sayName=function (){//①
//                    alert(this.name);
//                    
//                }
                
            }
            
            
            //.原型对象  _proto_把①放到函数外面来,效率会变高,对象的共有属性放到原型中,方便调用
            Person.prototype.sayName=function(){ //不会影响到全局作用域,避免与全局作用域有
                alert(this.name);                //同名时候的冲突
            }
            
            var zs=new Person("张三",19); zs.sayName();console.log(zs);
            var ls=new Person("李四",20); ls.sayName();console.log(ls);
            //.区别in的属性检查,不包括原型对象中的函数的检查
            console.log(Person.hasOwnProperty("name"));
            
            //.对两个隐含存参数的理解
//            形参 :this,
//            实参:argumes,是个类数组,包含数组属性,arguments.length来获取实参长度
        </script>
    </body>
</html>