zoukankan      html  css  js  c++  java
  • Javascript进阶课程---2、使用构造函数创建对象

    Javascript进阶课程---2、使用构造函数创建对象

    一、总结

    一句话总结:

    构造函数也是一个函数,只不过是一个特殊的函数,构造函数的函数名的首字母大写,我们一般创建对象都是使用构造函数方式,构造函数创建对象的时候要用new关键字:例如var zhuBaJie=new People('猪八戒',4);

    1、构造函数与普通函数相比的特殊之处?

    a、构造函数在创建时候的特点:函数名的首字母大写
    b、构造函数在使用时候的特点:必须使用new关键字,并且函数名的首字母大写

    2、构造函数里面怎么增加属性和方法?

    使用的this关键字,例如:this.name=name;
    function People(name,age) {
      this.name=name;
      this.age=age;
      this.say=function () {
        console.log('我是天底下最靓的仔,我是'+this.name+',我今年'+this.age+'岁。');
      };
    }

    3、在构造函数创建对象的时候,如果没有用new关键字来创建对象,会怎样?

    这个构造函数就是用普通函数的方式来调用的

    4、构造函数中this的指向问题?

    在构造函数中,this指向的是后面通过构造函数创建的实例,也是满足 谁调用函数(方法),this就指向谁 的特点的

    5、使用构造函数创建对象和使用工厂模式创建对象的区别?

    1、使用构造函数创建对象:函数在定义的时候,首字母大写,使用函数的时候,要用new关键字
    2、使用构造函数创建对象:我们没有显式的创建对象,也没有显式的返回对象,new关键字给我们做了

    6、怎么来判断一个对象是不是一个类的实例?

    instanceof关键字,例如:console.log(zhuBaJie instanceof People);

    二、使用构造函数创建对象

    博客对应课程的视频位置:2、使用构造函数创建对象
    https://www.fanrenyi.com/video/21/194

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>使用构造函数创建对象</title>
     6 </head>
     7 <body>
     8 <!--
     9 
    10 构造函数:
    11 构造函数也是一个函数,只不过是一个特殊的函数
    12 
    13 构造函数的特殊之处:
    14 1、构造函数在创建时候的特点:函数名的首字母大写
    15 2、构造函数在使用时候的特点:必须使用new关键字,并且函数名的首字母大写
    16 
    17 构造函数里面怎么增加属性和方法:
    18 使用的this关键字
    19 
    20 使用构造函数创建对象的好处:
    21 可以标注对象
    22 
    23 在构造函数创建对象的时候,如果没有用new关键字,那么这个构造函数就是用普通函数的方式来调用的
    24 
    25 在使用构造函数创建对象时,如果使用new关键字创建对象 的时候的特点:
    26 说明new关键字给我们隐式的创建了一个对象,和返回了一个对象
    27 
    28 构造函数中this的指向问题:
    29 在构造函数中,this指向的是后面通过构造函数创建的实例,
    30 也是满足 谁调用函数(方法),this就指向谁 的特点的
    31 
    32 使用构造函数创建对象和使用工厂模式创建对象的区别
    33 1、使用构造函数创建对象:函数在定义的时候,首字母大写,使用函数的时候,要用new关键字
    34 2、使用构造函数创建对象:我们没有显式的创建对象,也没有显式的返回对象,new关键字给我们做了
    35 
    36 
    37 面向对象编程
    38 使用构造函数创建对象的时候,构造函数就相当于一个类,利用构造函数创建的对象就是类的实例
    39 
    40 怎么来判断一个对象是不是一个类的实例
    41 instanceof
    42 
    43 
    44 
    45 
    46 -->
    47 <script>
    48     function People(name,age) {
    49         this.name=name;
    50         this.age=age;
    51         this.say=function () {
    52           console.log('我是天底下最靓的仔,我是'+this.name+',我今年'+this.age+'岁。');
    53         };
    54     }
    55     var zhuBaJie=new People('猪八戒',4);
    56     console.log(zhuBaJie);
    57     zhuBaJie.say();
    58     var tangSen=new People('唐僧',15);
    59     console.log(tangSen);
    60     tangSen.say();
    61 
    62     //造狗
    63     function Dog(name,age) {
    64         this.name=name;
    65         this.age=age;
    66         this.say=function () {
    67             console.log('我是'+this.name+',我今年'+this.age+'岁。');
    68         };
    69     }
    70     var xiaoTianDog=new Dog('哮天犬',99);
    71     console.log(xiaoTianDog);
    72     xiaoTianDog.say();
    73 
    74 
    75     //不使用new关键字会返回undefined
    76     // var wangCai=Dog('旺财',9);
    77     // console.log(wangCai);//不使用new关键字会返回undefined
    78     // wangCai.say();
    79 
    80     var wangCai=new Dog('旺财',9);
    81     console.log(wangCai);
    82     wangCai.say();
    83 
    84     //怎么来判断一个对象是不是一个类的实例
    85     console.log(zhuBaJie instanceof People);
    86     console.log(wangCai instanceof People);
    87     console.log(wangCai instanceof Dog);
    88 
    89 </script>
    90 </body>
    91 </html>

     
  • 相关阅读:
    Docker 安装 MySQL
    Docker安装
    Thymeleaf语法总结
    SpringBoot总结之事务和AOP
    SpringBoot总结之Spring Data Jpa
    SpringBoot总结之属性配置
    Spring总结之SpringMvc下
    Spring总结之SpringMvc上
    Spring总结之事务
    在什么情况下使用@ResponseBody 注解?
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/12615301.html
Copyright © 2011-2022 走看看