什么是构造函数?

首先在说明什么是构造函数之前,我们需要了解为什么需要构造函数。

在我们创建多个对象,当里面的属性或方法都是大量相同时(例如给很多个歌手创建他们的个人信息),需要给同一个属性多次赋值很麻烦,一旦其中有某个属性需要变更,就要重新更改多次。如果只是创建一两个对象还好,如果是十几个甚至上百个,就显得代码十分臃肿。

因此也就引出了构造函数的概念,使用构造函数就可以实现一次声明,多次使用的效果,减少重复的代码。所以构造函数就是通过函数创建多个属性和方法相同的对象。它抽取了对象的公共部分,封装到函数里面,它泛指某一大类(class),类似于JAVA中的类。

构造函数的语法格式:
function 构造函数名(){
    this.属性 = 值;
    this.方法 = function(){
        方法体
    } 
}
new 构造函数名(需要传入的对象参数);

//例如
function Star(uname.age,sex){this.name = uname;this.age = age;this.sex = sex;this.hobbit = function(play){console.log(play)}
}
var xiaoming = new Star('小明',18,'男');

如何使用构造函数所创建出来的对象?

对象赋值的变量名.属性

对象赋值的变量名.方法();

console.log(xiaoming.name);    //对象名.属性名
console.log(xiaoming['age']);  //对象名['属性名']
xiaoming.hobbit('开始学习');        //调用对象中的hobbit函数,输出 开始学习

构造函数需要注意的地方:

1.构造函数名首字母必须要大写

2.构造函数不需要return就可以返回值,依靠的是new关键字的作用

3.调用构造函数必须使用new关键字

通过 new 关键字创建对象的过程,我们也称为对象实例化

关于构造函数中new关键字需要做的四件事情:

1.创建一个空的对象

2.让this指向这个新的对象

3.执行构造函数里面的代码,给新的对象添加属性和方法

4.返回这个新对象(这也是为什么构造函数不需要return关键字的原因)

构造函数的概念及其如何使用相关推荐

  1. 浅谈C++类(1)--概念和构造函数

    迎转载,但请标明作者 "九天雁翎",当然,你给出这个帖子的链接更好. 类多么重要我就不多说了,只讲讲学习,因为个人认为类的学习无论从概念的理解还是实际代码的编写相对其他C兼容向的代 ...

  2. 【C++】day03 - 【类型与对象的概念】【类型】【构造函数】【一个对象创建的过程】【构造函数的应用】【头文件和实现文件的分离】【this指针】【析构函数】

    目录 一.类型与对象的概念 1.1什么是对象 1.2类型 二.如何在计算机中描述类型 2.1使用结构体(struct)对类型进行描述 2.2使用类(class)对类型进行描述 三.构造函数 3.1构造 ...

  3. C++构造函数(一)

    本篇是介绍C++的构造函数的第一篇(共二篇),属于读书笔记,对C++进行一个系统的复习. 构造函数的概念和作用 全局变量未初始化时为0,局部变量未初始化时的值却是无法预测的.这是因为,全局变量的初始化 ...

  4. 关于对象、构造函数、原型、原型链、继承

    对象: 在传统的面向过程的程序设计中,会造成函数或变量的冗余.而js中对象的目的是将所有的具有相同属性或行为的代码整合到一起,形成一个集合,这样就会方便管理,例如: var person1={name ...

  5. 拷贝构造函数的调用以及浅拷贝与深拷贝的理解

    今天一直在研究拷贝构造函数相关的东西,我这个大四老狗感觉又回到了大一学C++的时候.瞎捣鼓了一天,略微还是有些收获的,趁着脑子中的概念正热,把自己的心得赶紧整理出来分享给大家. ​       首先简 ...

  6. c++ 拷贝构造函数_禁止拷贝构造,禁止bug

    禁止拷贝构造,禁止bug 一.前言 首先,我先讲讲为什么会写这篇文章:这个也是翻阅自己之前博客,当时看开源代码的时候,总是很奇怪,为什么有的代码中会会出现类似于Epoll( const Epoll&a ...

  7. 课程介绍 复习 创建对象的三种方式 自定义构造函数创建对象 工厂模式创建对象

    课程介绍 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8 ...

  8. 3-3:类与对象中篇——默认成员函数之构造函数和析构函数

    文章目录 一:类的默认6个成员函数 二:构造函数 (1)构造函数的概念 (2)构造函数注意事项 三:析构函数 (1)析构函数的概念 (2)析构函数注意事项 一:类的默认6个成员函数 如果一个类里面什么 ...

  9. 3-4:类与对象中篇——默认成员函数之拷贝构造函数

    文章目录 (1)拷贝构造函数的概念 (2)拷贝构造函数的注意事项 (1)拷贝构造函数的概念 拷贝构造函数:用于创建一个与原对象一模一样的对象,也即拷贝构造函数=拷贝+构造函数.拷贝构造函数只有一个形参 ...

最新文章

  1. java备忘录模式应用场景_图解Java设计模式之备忘录模式
  2. 我的Java开发学习之旅------Java经典排序算法之希尔排序
  3. spring面试重点
  4. nagios监控windows USBKEY
  5. wmic 获取计算机ip,【已解决】xp系统下,受限用户如何用批处理在不使用wmic获取多个网卡的IP地址?...
  6. 彻底解决iOS项目中 _OBJC_CLASS_$_XXXService, referenced from: 的类似问题
  7. java面试题32:Java网络程序设计中,下列正确的描述是()
  8. LeetCode 面试题13. 机器人的运动范围
  9. extjs5(03--项目中文件的加载过程)
  10. django中间件修改,以及TypeError: object() takes no parameters的异常处理
  11. Oracle的exp导出、imp导入数据命令
  12. 不定积分求解(三大方法)
  13. unbuntu 安装docker
  14. php 图片上添加文字
  15. OpenHarmony 简介:使用鸿蒙操作系统,开发者能做的是啥呢,学习NodJS,可以开发应用了。后续慢慢学习,赶紧去加星星。
  16. 读《沟通的方法》推荐序有感
  17. uClinux on Blackfin BF533 STAMP - A DSP Linux Port
  18. 四年级下册计算机有错必改教案,小学四年级下册语文《步行18里》必
  19. 脖子为什么越按越疼?
  20. SpringBoot 错误页面使用、自定义错误页、自定义异常、自定义异常解析器

热门文章

  1. 安徽省计算机二级考试试题,安徽省计算机二级考试理论试题(附答案)
  2. opencv中RNG 函数释义
  3. Linux 高性能服务器开发笔记:Reactor 模型定时器 | 网络编程定时器
  4. Deep Learning Models for Wireless SignalClassification with Distributed Low-Cost SpectrumSensors解读
  5. c语言新手游戏,游戏c语言代码 - 新手交流 - 中国红客联盟 - Powered by HUC
  6. 论文Spatial-Temporal Transformer for Dynamic Scene Graph Generation
  7. 服务器上传文件被挂起,打印机文件被挂起是啥意思
  8. 梅科尔工作室-马欢欢-鸿蒙笔记4
  9. C#源代码—姓名 请输入老师的编号、姓名、职称和部门
  10. Python调用海康威视网络相机之——python调用海康威视C++的SDK