深入理解JavaScript:对象什么时候创建

🌟 我们在chrome浏览器中debug程序。为了好debug我们会写一些在日常开发中基本不会采用的代码书写方式。

JavaScript中创建对象有3中方式: 1、对象字面量; 2、new; 3、Object.create(对象);

1、使用new创建对象

function F(){
    this.v1 = 1;
    this.v2 =2;
}
let f = new F();

🔓 在F构造函数中第一行let v1 = 1前打上断点,在控制台(Console)输入this,显示如下图
在这里插入图片描述

this已经有值了。只是属性v1、v2还没有ti添加到对象中。

📖 结论:使用new调用构造函数创建对象时,对象立即被创建出来,不会等构造函数中的代码执行完成并返回才创建对象。


2、对象字面量

示例程序:

let obj1 = {
    v1: (function () {
        return 1;
    })(),
    v2: ""
}
let obj2 = {};

为了好debug打断点验证,v1我们采用立即执行函数(IEF)进行初始化。

在立即执行函数的return 1前打上断点。在控制台输入this,显示Window {...}, 也就是说进入字面量对象定义中时,对象并没有创建出来。

📖 结论:使用对象字面量创建对象时,对象并不是被立刻创建出来。

这里的结论有助于理解箭头函数的this值。

⭐️⭐️⭐️⭐️⭐️
如果箭头函数直接作为方法定义在对象中,箭头函数this值并不会绑定到这个对象,而是会绑定到这个对象的外围上下文的this

3、Object.create(对象);

没有想好怎么验证… 。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MicroSIP电话呼叫软件使用及配置方法

MicroSIP是一款开源的SIP协议电话软件,它可以帮助你在计算机上进行语音和视频通话。下面是关于如何使用和配置MicroSIP的一些基本步骤: 安装MicroSIP 从MicroSIP官方网站下载适合你操作系统的安装包23。 解压下载的文件,并运行安装程序。 …

GRPC学习笔记

GRPC学习笔记 1 GRPC简介 1.1 定义 gRPC(Google Remote Procedure Call,Google远程过程调用)协议是谷歌发布的基于HTTP2协议承载的高性能、通用的RPC开源软件框架,提供了支持多种编程语言的、对网络设备进行配置和管理的方法。…

更新至2022年上市公司数字化转型数据合集(四份数据合集)

更新至2022年上市公司数字化转型数据合集(四份数据合集) 一、2000-2022年上市公司数字化转型数据(年报词频、文本统计) 二、2007-2022年上市公司数字化转型数据(年报和管理层讨论)(含原始数据…

Java中的运算符

运算符是用于数学函数、一些特殊的赋值语句和逻辑比较方面的特殊符号。 赋值运算符(“”) 赋值运算符是一个二元运算符(即对两个操作数进行处理),功能是将右侧的操作数赋值给左侧的操作数。 int a 100; 该表达式就…

prometheus配置监控Java应用服务

程序员的公众号:源1024,获取更多资料,无加密无套路! 最近整理了一份大厂面试资料《史上最全大厂面试题》,Springboot、微服务、算法、数据结构、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、数据库等等 …

从底层分析并详解SpringAOP底层实现

首先分析AOP的实现 首先切面(Advisor)由通知(Advice)和切点(Pointcut)组成 包括前置通知后置通知等等最终都会被转化为实现 MethodInterceptor 接口的环绕通知 先看一段代码了解一下是aop是怎么运作的 首先定义了两个类实现了MethodInterceptor接口&…

XiaodiSec day017 Learn Note 小迪安全学习笔记

XiaodiSec day017 Learn Note 小迪安全学习笔记 记录得比较凌乱,不尽详细 day 17 主要内容: php 框架 thinkPHPyiilaravel 使用 fofa 搜索 thinkphp 市面上 thinkphp5 版本较多 url 结构 域名/.php(文件名)/index(目录)/index(函数名)模块名-控…

oracle 12c+ max_string_size参数

一个客户的数据库版本是19.3,在做数据库复制的时候,目标端报错了,查看了一下问题发现表的字段长度有不对,在12c以前我们都知道varchar的长度最大是4000,但是客户这里居然有32767: 把客户的建表语句弄出来,放到我的一个19c的测试环境进行测试: 发现报错了: 这里报错很明显了,是M…

不可思议!我的AI有道英语字典助手竟然与百度千帆AI应用创意挑战赛K12教育主题赛榜首作品差之毫厘

目录 一、前言二、效果对比三、优化《AI英语词典》提示词四、其他获奖作品链接 一、前言 今天看百度千帆AI原生应用创意挑战赛——K12教育主题赛,发现第一名的《我爱记单词》和我早两天发布的一篇《AI英语词典》的想法不谋而合。当时我们应该都是互相不知道对方的&a…

Day1--什么是网络安全?网络安全常用术语

目录 1. 什么是网络安全? 信息系统(Information System) 信息系统安全三要素(CIA) 网络空间安全管理流程 网络安全管理 2. 网络安全的常用术语 3. 网络安全形势 4. 中国网络安全产业现状 1. 什么是网络安全&am…

使用IOPaint实现图片擦除路人

IOPaint 是一个免费的开源的 inpainting/outpainting 工具,由最先进的 AI 模型提供支持。 IOPaint 中使用各种模型来修改图像: 擦除:删除任何不需要的物体、缺陷、水印、人物。修复:对图像的特定部分进行修改、添加新对象或替换…

第二期书生浦语大模型训练营第四次笔记

大模型微调技术 大模型微调是一种通过在预训练模型的基础上,有针对性地微调部分参数以适应特定任务需求的方法。 微调预训练模型的方法 微调所有层:将预训练模型的所有层都参与微调,以适应新的任务。 微调顶层:只微调预训练模型…

ACL的知识点和实验

1.ACL的组成 ACL由若干条permit或deny语句组成。每条语句就是该ACL的一条规则,每条语句中的permit或deny就是与这条规则相对应的处理动作。 2.规则编号 (1)一个ACL中的每一条规则都有一个相应的编号。 (2)步长是系…

本地CPU搭建知识库大模型来体验学习Prompt Engineering/RAG/Agent/Text2sql

目录 1.环境 2.效果 3.概念解析 4.架构图 5. AI畅想 6.涉及到的技术方案 7. db-gpt的提示词 1.环境 基于一台16c 32G的纯CPU的机器来搭建 纯docker 打造 2.效果 3.概念解析 Prompt Engineering : 提示词工程 RAG: 检索增强生成; …

PDE求格林函数

求Green函数 通俗地解释拉普拉斯方程的基本解的意义 拉普拉斯方程的基本解是一个非常有用的数学概念,它帮助我们理解在某一个点施加一个非常小的影响(比如一个微小的推动、热源或电荷)时,这种影响是如何在整个空间中扩散和影响其…

业内PMP考试哪家机构通过率高?

选择培训机构时,通过率并不是唯一的标准。PMP培训机构避坑指南,如何选择可靠的机构?哪些是虚假误导?哪些是真正的优质培训机构? 20家业内PMP机构测评 干扰项总结(一)【各种虚假排行榜】 这个行业首先不存在官方的机构…

会议文字记录工具【钉钉闪记】

当开会时,需要文字记录会议内容,但是打字又慢,可以使用钉钉闪记。 钉钉工作台直接搜索-钉钉闪记

【注释和反射】类加载的过程

继上一篇博客【注释和反射】获取class类实例的方法-CSDN博客 目录 三、类加载的过程 例子 三、类加载的过程 在Java虚拟机(JVM)中,类加载是一个将类的字节码文件从文件系统或其他来源加载到JVM的内存中,并将其转换为类或接口的…

napi —— linux 网卡驱动收包机制

linux 操作系统一般指 linux 内核。在 linux 上开发应用的时候,可以使用 linux 提供的系统调用。linux 内核管理着机器上的硬件资源:内存,磁盘,网卡等。开发应用的时候不能直接操作这些硬件,而只能通过系统调用来使用…

初识C++ · 类和对象(中)(2)

前言:上篇文章已经介绍了6个默认成员函数中的3个函数,分别是构造函数,析构函数,拷贝构造函数,本文介绍的是后三个,赋值运算符重载,const成员函数,取地址操纵符重载。 目录​​​​​…
最新文章