构造函数是什么?

创建一个构造函数,专门用来创建Cat对象。

1.怎么用:

构造函数(Constructor)的创建方式和普通函数一样,但通常首字母进行大写,用于和普通函数区分,构造函数和普通函数的区别就是调用方式的不同,普通函数是直接调用,而构造函数需要使用new关键字来调用

例子:

2.返回值:

(1) 没有手动添加返回值,默认返回 this

(2) 手动添加一个基本数据类型的返回值,最终还是返回 this

(3) 手动添加一个复杂数据类型(对象)的返回值,最终返回该对象

如果指定了返回对象,那么,this对象可能被丢失。如果直接调用函数,那么,this对象指向window,并且,不会默认返回任何对象(除非显性声明返回值)。为了防止因为忘记使用new关键字而调用构造函数,可以加一些判断条件强行调用new关键字

例如:

3.使用 instanceof 可以检查一个对象是否是一个类的实例

语法:对象 instanceof 构造函数

如果是实例,则返回true,否则返回false

4.对Person类进行优化

在创建Person构造函数中,为每个对象都添加了一个haihai方法。目前我们的方法都是在构造方法内部创建的,也就是构造函数每一次执行就会创建一个新的haihai方法,也就是说所有实例的haihai都是唯一的。 这样会导致了构造函数执行一次就会创建一个新的方法。执行多少次就会创建多少个新的方法,而这些方法都是一样的,这样就导致了内存空间的浪费,其实我们可以让所有对象共享同一个方法。

总结:

一个构造函数可以通过new创建多个实例对象

创建构造函数时,里面的属性和方法前必须加this

构造函数不需要return 就可以返回结果

这是我所学到的JavaScript的构造函数,所以我要分享给你们,希望可以帮助到你们。

以上就是我的分享,新手上道,请多多指教。如果有更好的方法或不懂得地方欢迎在评论区教导和提问喔!

JavaScript的构造函数相关推荐

  1. javascript中构造函数的返回值问题和new对象的过程

    首先明白一点:javascript中构造函数是不须要有返回值的,这一点跟java非常类似.能够觉得构造函数和普通函数的最大区别就是:构造函数中没有return语句,普通函数能够有return语句.构造 ...

  2. 深入理解Javascript中构造函数和原型对象的区别

    在 Javascript中prototype属性的详解 这篇文章中,详细介绍了构造函数的缺点以及原型(prototype),原型链(prototype chain),构造函数(constructor) ...

  3. 详解JavaScript创建对象——构造函数模式

    文章目录 一.什么是构造函数? 二.构造函数与普通函数的区别 1.new 2.new.target 三.使用构造函数 四.构造函数的问题 总结 一.什么是构造函数? 在一些面向对象的语言,如Java. ...

  4. Javascript将构造函数扩展为简单工厂

    一般而言,在Javascript中创建对象时需要使用关键字new(按构造函数去调用),但是某些时候,开发者希望无论new关键字有没有被显式使用,构造函数都可以被正常调用,即构造函数同时还具备简单工厂的 ...

  5. 剖析javascript中构造函数

    在绝大多数的编程语言中,均存在函数这一概念,其含义大概可以归纳为:包含一定语句,用于完成某些有意义的工作,如处理文本.控制输入输出或计算数值等.通过在程序代码中引入函数名称和所需的参数,可在该程序中执 ...

  6. JavaScript (四) ——构造函数原型 , 原型链 和继承

    原型 所有引用类型都有一个_proto_属性, 属性值是对象 所有函数都有一个prototype属性 , 属性值是一个对象 所有引用类型的_proto_属性 , 都指向其构造函数的prototype ...

  7. Javascript非构造函数的继承

    一.什么是"非构造函数"的继承? 比如,现在有一个对象,叫做"中国人". var Chinese = { nation:'中国' };还有一个对象,叫做&quo ...

  8. javascript中构造函数的说明

    1.1 构造函数是一个模板 构造函数,是一种函数,主要用来在创建对象时对 对象 进行初始化(即为对象成员变量赋初始值),并且总是与new运算符一起使用. 1.2 new 运算符 new运算符创建一个新 ...

  9. JavaScript学习总结(二十)——Javascript非构造函数的继承

    一.什么是"非构造函数"的继承? 比如,现在有一个对象,叫做"中国人". 1 var Chinese = { 2 nation:'中国' 3 }; 还有一个对象 ...

最新文章

  1. Datawhale组队学习周报(第047周)
  2. java基础学习(1)-jre与jdk
  3. 胡玮炜卸任摩拜CEO,或将成为美团大裁员的开端
  4. 详解正则表达式匹配方法 match()
  5. 微信小程序退出页面时清除定时器
  6. python笔记之if练习
  7. python实现用户输入用户名和密码不能为空_Python学习【第四篇】用户输入及判断...
  8. 收藏 eclipse 最常用的10个快捷键
  9. [振动力学] 课程考核报告:Matlab 实现邓克利法、瑞利法、里兹法、矩阵迭代法
  10. 用ODBC方式操作dbf文件
  11. 《资治通鉴-卷四(一)
  12. [PMZL]第1卷-误入天庭-01
  13. 做量化交易的第一步,Python爬取股票数据
  14. C++标准库分析总结(一)——<标准库简介>
  15. python是一种跨平台、开源、免费的高级动态编程语言吗_智慧职教: §Python是一门跨平台、开源、免费的解释型高级动态编程语言。...
  16. iOS调用系统通讯录获取姓名电话号码
  17. 小程序 uniapp 实现pdf 电子合同签名 并导出功能
  18. Unity笔记——FairyGUI
  19. 云计算基础设施软件厂商简介
  20. 基于Python机器学习实现的花卉识别

热门文章

  1. windows7 x64系统安装VC++6.0的方法探讨
  2. 奈奎斯特采样定理的作用即推导
  3. linux 18.04安装搜狗输入法后不能输出中文
  4. Boostnote Boost your happinesss,productiveity and creativity.
  5. 【无标题】平方和与立方和
  6. excel模板下载和导入功能
  7. 开发城市出租车智能调度中心
  8. 在make ipmitool时出现未定义的宏,多半是缺少libtool库。undefine macro xxxxx
  9. golang常用库之- pierrec/lz4包 | lz4命令、lz4压缩算法(高压解速度)
  10. 避坑spring整合mybatis事务不生效问题