js基础——构造函数2

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        /*
          创建一个person构造函数
          在person构造函数中,为每一个对象都添加了sayName方法
          也就是构造函数每执行一次都会创建一个新的sayName方法
          所有的的sayName都是唯一的,这样就导致了构造函数执行一次就会创建一个新的方法,
          执行一万次就会创建一万个新的方法
          这是完全没有必要的,完全可以使所有的对象共享同一个方法
        */
        function Person(name,age,gender){
    
    
            this.name=name;
            this.age=age;
            this.gender=gender;
            //向对象中添加一个方法
            this.sayName=function(){
    
    
                console.log("hello,下午好"+this.name);
            };
        }
        //方法二:将sayName方法在全局作用域中定义
        function fun(){
    
    
            console.log("hello大家好,我是:"+this.name);
        };
        fun();
        /*
          将函数定义在全局作用域中,污染了全局作用域命名的空间,
          而且定义在全局作用域中也很不安全
        */
        //创建一个person的实例
        
        var per=new Person("孙悟空",18,"男");
        var per3=new Person("猪",17,"女");
        var per4=new Person("悟空",19,"女");
        per.sayName();
        per3.sayName();
        per4.sayName();
    </script>
</head>
<body>
    
</body>
</html>

猜你喜欢

转载自blog.csdn.net/weixin_44158539/article/details/113829637