new和不用new调用构造函数,有什么区别?

news2024/10/6 8:31:15

new和不用new的构造函数,有什么区别?

下面从有return和无return,如果在有return的情况下,return原始类型数据和return引用应用类型数据等几方面进行论述👍👍👍

区别1:当没有return时

function Person(name){
	this.name=name
    console.log(this.name) //"dema"
    console.log(this) 
}
var a=Person('dema')
var b=new Person('dema')
console.log('new',b)  // Person { name: 'dema' }
console.log('不new',a) // undefined

请添加图片描述

结论

  • 👀 在没有return的情况下
  • 👀 不new,this指向全局大对象,不会默认返回任何对象
  • 👀 new,this对象指向的是person实例

区别2:有return的情况下

返回的是简单数据类型

function Person(name){
	this.name=name
	console.log(this.name)
	return 2
}
var a=Person('haozi') // haozi
var b=new Person('dema') //dema
console.log(a) //2
console.log(b) //Person { name: 'dema' }

请添加图片描述

结论

  • 👀 如果有返回值,并且是原始数据类型
  • 👀 不 new,返回的是简单数据类型的返回值
  • 👀 new,返回的依然是Person实例

返回值是引用数据类型

function Person(name){
	 this.name=name
	 console.log(this.name)
     return [1,2,3,4,5]
}

var a=Person('dema1') //dema1
var b=new Person('dema2') //dema2
console.log(a) //[1,2,3,4,5]
console.log(b) //[1,2,3,4,5]
console.log(a.name) //undefined
console.log(b.name)//undefined

请添加图片描述

总结

  • 👀 不使用new的构造函数,有return,得到的就是return的值;没有return,得到的就是undefined
  • 👀 使用new,没有return或者return的是简单类型的返回值,直接忽略,返回的都是实例化后的对象,如果return的值是引用类型,那么拿到的就是这个引用类型的数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/751370.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Bus消息总线(在Spring Cloud整合Bus(idea19版本)

Bus消息总线 所谓消息总线Bus,即我们经常会使用MQ消息代理构建一个共用的Topic,通过这个Topic连接各个微服务实例,MQ广播的消息会被所有在注册中心的微服务实例监听和消费。换言之就是通过一个主题连接各个微服务,打通脉络 Spring Cloud Bus …

FastDDS 源码剖析:DataWriter分析

目录 DataWriter分析 DataWriter 类分析 DataWriterImpl 类分析 关键函数分析 DataWriter分析 DataWriter 类分析 DataWriter 类是 Fast DDS 库中的一个重要类,它用于实现 DDS(Data Distribution Service)发布-订阅通信模型中的数据写入…

Git #01 操作记录

本篇内容 0. 前期配置1. 仓库1.1 上传本地代码到远程仓库 0. 前期配置 请提前配置好 git 的全局用户名: # xin:账号名 $ git config --global user.name "xin" # xin163.com:账号绑定的邮箱地址 $ git config --global user.emai…

单片机能否替代PLC实现控制和自动化系统?

是的,单片机可以在某些情况下替代PLC,但在其他情况下可能并不适用。以下是对这个问题的详细解释: 我这里刚好有嵌入式、单片机、plc的资料需要可以私我或在评论区扣个6 灵活性和可编程性:PLC相对于单片机来说更具有灵活性和可编…

DolphinScheduler minio(S3支持)开启资源中心

DolphinScheduler 如果是在3.0.5 及之前的版本,没办法支持 S3 的协议的 当你按照文档配置之后,运行启动之后,在master 和 worker 节点,都会出现 缺包的依赖问题。 那这个问题在什么版本修复了呢? 3.0.6... 那 3.0.6 …

每个前端开发者都应知道的10个实用网站

微信搜索 【大迁世界】, 我会第一时间和你分享前端行业趋势,学习途径等等。 本文 GitHub https://github.com/qq449245884/xiaozhi 已收录,有一线大厂面试完整考点、资料以及我的系列文章。 快来免费体验ChatGpt plus版本的,我们出的钱 体验地…

sprinboot企业客户信息反馈平台

企业客户信息反馈平台的开发运用java技术,MIS的总体思想,以及MYSQL等技术的支持下共同完成了该平台的开发,实现了企业客户信息反馈管理的信息化,使用户体验到更优秀的企业客户信息反馈管理,管理员管理操作将更加方便&a…

canal番外篇-otter

前置知识点 主从复制binlogcanal正则dockerjava 前置工具 dockerotter-all 场景描述(增量同步) 目前项目中使用的是mysql5.5,计划升级为mysql8.1,版本跨度较大,市面上可靠工具选择较少。otter符合预期&#xff0c…

3Ds max入门教程:为男性角色创建服装T 恤

推荐: NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 3ds Max 角色服装教程 在本 3ds Max 教程中,我们将为角色模型创建一个简单的 T 恤。我们提供了一个“human_figure.obj”文件供您导入模型。因此,本教程将重点介绍的是创建服装&…

【VTK】VTK 显示小球例子,在 Windows 上使用 Visual Studio 配合 Qt 构建 VTK

知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。 关于更多此例子的资料,可以参考:【Visual Studio】在 Windows 上使用 Visual Studio 配合 Qt 构建 VTK。 文章目录 版本环境VTKTest.…

【机器人模拟-01】使用URDF在中创建模拟移动机器人

一、说明 在本教程中,我将向您展示如何使用通用机器人描述格式 (URDF)(机器人建模的标准 ROS 格式)创建模拟移动机器人。 机器人专家喜欢在构建机器人之前对其进行模拟,以测试不同的算法。您可以想象,使用物理机器人犯错的成本可能很高(例如,将移动机器人高速…

SPSS方差分析

参考文章 导入准备好的数据 选择分析方法 选择参数 选择对比,把组别放入因子框中,把红细胞增加数放进因变量列表 勾选“多项式”,等级取默认“线性” ,继续 接着点击“事后比较”,弹出对话框,勾选“LSD” …

华为OD机试真题 JavaScript 实现【分糖果】【2022Q2 200分】,附详细解题思路

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、JavaScript算法源码六、效果展示 专栏导读 本专栏收录于《华为OD机试(JavaScript)真题(A卷B卷)》。 刷的越多,抽中的概率越大,每一题都…

Windows Bat实现延时功能的几种常见方式

文章目录 1. 使用ping命令实现延时2. 使用timeout命令实现延时3. 使用choice命令实现延时4. 使用for循环实现延时5. 使用sleep命令实现延时6. 使用VBScript.sleep实现延时总结 在 bat批处理中实现延时功能的几种常用方式 1. 使用ping命令实现延时 使用ping命令可以实现延时的…

mysql备份,视图

一、备份与还原 1.设计样例表 CREATE DATABASE booksDB; use booksDB; --创建表book2 CREATE TABLE books(bk_id INT NOT NULL PRIMARY KEY,bk_title VARCHAR(50) NOT NULL,copyright YEAR NOT NULL); --创建表authors CREATE TABLE authors(auth_id INT NOT NULL PRIM…

java学习路程之篇六、知识点、算数运算符、自增自减运算符、类型转换

文章目录 1、算术运算符2、自增自减运算符3、类型转换 1、算术运算符 2、自增自减运算符 3、类型转换

Serverless是什么?如何使用?有哪些优势?国内外有哪些Serverless平台?

111. Serverless是什么?如何使用?有哪些优势?国内外有哪些Serverless平台? 一、 Serverless是什么? 百度百科 Serverless 是云计算的一种模型。以平台即服务(PaaS)为基础,无服务器…

【沐风老师】3DMAX灯光放置插件LightPlacer使用方法教程

3DMAX灯光放置插件LightPlacer使用方法 3DMAX灯光放置插件LightPlacer,用于3dMax放置和管理灯光的插件,可以在3dMax中一键制作所需的灯光,且通过插件创建出来的灯光属性可以在该面板下进行直接修改,并不需要切换至堆栈。该插件的有…

接口自动化测试实践指导(下):接口自动化测试断言设置思路

1 断言设置思路 这里总结了我在项目中常用的5种断言方式,基本可能满足90%以上的断言场景,具体参见如下脑图: 下面分别解释一下图中的五种思路: 1) 响应码 对于http类接口,有时开发人员只是通过设置接口响…

IDEA的火焰图简单使用

1. 火焰图是什么? 简单来说就是用来查看程序耗时的一张图 如何读懂火焰图? 2. mac上如何生成火焰图 找了一圈,原来idea原本就支持… 3. 测试代码 package org.example;import java.util.ArrayList; import java.util.List; import java.…