zoukankan      html  css  js  c++  java
  • 0147 JavaScript创建对象的三种方式 之 构造函数

    5.2.3.1 构造函数
    • 构造函数:是一种特殊的函数,主要用来初始化对象,即为对象成员变量赋初始值,它总与 new 运算符一起使用。我们可以把对象中一些公共的属性和方法抽取出来,然后封装到这个函数里面。

    • 构造函数的封装格式:

      function 构造函数名(形参1,形参2,形参3) {
           this.属性名1 = 参数1;
           this.属性名2 = 参数2;
           this.属性名3 = 参数3;
           this.方法名 = 函数体;
      }
      
    • 构造函数的调用格式

      var obj = new 构造函数名(实参1,实参2,实参3)
      

      以上代码中,obj即接收到构造函数创建出来的对象。

    • 注意事项

      1. 构造函数约定首字母大写
      2. 函数内的属性和方法前面需要添加 this ,表示当前对象的属性和方法。
      3. 构造函数中不需要 return 返回结果
      4. 当我们创建对象的时候,必须用 new 来调用构造函数
    • 其他:构造函数和对象的关系

      【类对象 和 实例化对象 的关系。】

      (1)构造函数,如 Stars(),抽象了对象的公共部分,封装到了函数里面,它泛指某一大类(class)
      (2)创建对象,如 new Stars(),特指某一个。

    ​ (3)对象实例化:通过 new 关键字创建对象的过程我们也称为对象实例化。

            // 利用构造函数创建对象
            // 我们需要创建四大天王的对象  相同的属性: 名字 年龄 性别  相同的方法: 唱歌
            // 构造函数的语法格式
            // function 构造函数名() {
            //     this.属性 = 值;
            //     this.方法 = function() {}
            // }
            // new 构造函数名();
            function Star(uname, age, sex) {
                this.name = uname;
                this.age = age;
                this.sex = sex;
                this.sing = function(sang) {
                    console.log(sang);
    
                }
            }
            var ldh = new Star('刘德华', 18, '男'); // 调用函数返回的是一个对象
            // console.log(typeof ldh);
            console.log(ldh.name);
            console.log(ldh['sex']);
            ldh.sing('冰雨');
    
            var zxy = new Star('张学友', 19, '男');
            console.log(zxy.name);
            console.log(zxy.age);
            zxy.sing('李香兰')
    
    
            // 1. 构造函数名字首字母要大写
            // 2. 我们构造函数不需要return 就可以返回结果
            // 3. 我们调用构造函数 必须使用 new
            // 4. 我们只要new Star() 调用函数就创建一个对象 ldh  {}
            // 5. 我们的属性和方法前面必须添加 this
    
            // 构造函数和对象
            // 1. 构造函数  明星 泛指的某一大类  它类似于 java 语言里面的  类(class)
            function Star(uname, age, sex) {
                this.name = uname;
                this.age = age;
                this.sex = sex;
                this.sing = function(sang) {
                    console.log(sang);
                }
            }
            
            // 2. 对象 特指 一个具体的事物 刘德华 ==  {name: "刘德华", age: 18, sex: "男", sing: ƒ}
            var ldh = new Star('刘德华', 18, '男'); // 调用函数返回的是一个对象
            console.log(ldh);
    
            // 3. 我们利用构造函数创建对象的过程我们也称为对象的实例化
    
  • 相关阅读:
    Qt 学习之路:Canvas
    Qt 学习之路:模型-视图高级技术
    Qt 学习之路 :视图代理
    Qt 学习之路 :动态视图
    Qt 学习之路 :Repeater
    Qt 学习之路 :Qt Quick Controls
    mysql-gdb--oracle
    redis-BOOK
    2016qconbeijing
    LINUX 内核月报 taobao
  • 原文地址:https://www.cnblogs.com/jianjie/p/12153735.html
Copyright © 2011-2022 走看看