关于ES5内置函数Object的新方法--Object.create()

news2024/9/28 3:31:03

在今天的学习中,更深层次的了解了一下ES5中内置函数Object的新方法Object.create(),觉得这个api功能真的十分强大,并且使用的场景也有很多,现和各位同行们分享学习成果,欢迎各位大佬们指正,废话不多说,开整…😊😊😊
请添加图片描述

1.🧋🧋什么是内置构造函数Object

  • Object是Object类型得构造函数,所以typeof Object返回得是Function

在这里插入图片描述
在这里插入图片描述

  • 而Object.prototype对象才是所有对象的父对象
  • Object作为构造函数,有三种情况
    • Object() 如果传入参数null,undefined,或者不传入,则相当于new Object(),创建有原型的空对象
    • Object(原始类型值) 将原始类型的值转化为Object类型,也等效于new Object(原型类型值)
    • Object(引用类型的对象) 什么都不做,还返回原对象

【扩展】:object.prototype对象是所有对象的父对象,那么根据原型链的原理Object.prototype.__proto__,object.prototype就是原型链的顶端了吗?

答案:当然不是喽,原型链的顶端是null,下面,我们在浏览器中来验证~~

在这里插入图片描述
内置函数Object中有很多的方法,下来我们着重介绍Object.create()

2.🧋🧋 Object.create()

  • Object.create() 用于创建一个新对象
    • 新对象继承自指定的父级原型对象

    • 同时又扩展出多个自有属性

    • 语法

      • var newObj=Object.create(proto,{扩展属性对象})
      • 其中,{扩展属性对象}和defineProperties方法第二个参数完全一样
      • 强调:和defineProperties方法第二个参数一样,除value特性外的其余三个特性,默认都为false
      • 何时使用:今后只要基于一个已有的父对象,创建新对象,同时还可能扩展新对象的自由属性时,就要用Object.create方法
    • Object.create方法的特殊用法

      • 创建一个原型为null的空对象:var obj=Object.create(null)

      • 实现子类型构造函数的原型继承父类型构造函数的原型: Son.prototype=Object.create(Parent.prototype)

      • 创建普通空对象 等效于var obj={}:var obj=Object.create(Object.prototype)

      • 创建对象同时扩展自有属性

        
          var staff={name:"dema",age:28}
          var business=Obejct.create(staff,{
             eid:{
               value:555,
               writable:true,
               enumerable:true
             }
          })
        
        
    • 案例

        ```javascript
          
         function Flyer(fname,speed){
            this.fname=fname;
            this.speed=speed
         }
      
         Flyer.prototype.fly=function(){
            console.log(`${this.name}以时速${this.speed}飞行`)
         }
      
         function Plane(fname,speed,capacity){
            Flyer.call(this,fname,speed)
            this.capacity=capacity
         }
      
         Plane.prototype=Object.create(Flyer.protoType)
         var b747=new Plane('B747',700,300)
         b747.fly()
         console.log(b747)
      
        ```
      

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

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

相关文章

git reset origin --hard解决‘Your branch is ahead of ‘origin/xxxx‘ by xx commit.’

git reset origin --hard解决‘Your branch is ahead of origin/xxxx by xx commit.’ 如图: 之前是这么解决的解决git:Your branch is ahead of ‘XXX‘ by X commits-CSDN博客git删除/撤销远已经push到程服务器上某次代码提交场景:不小心把…

InterSystems开发者社区中文版第二届技术征文大赛正式启动!

嗨,开发者们! 秋高气爽之际,我们很高兴地宣布启动🏆InterSystems开发者社区中文版第二届技术征文大赛 🏆(←点击链接进入参赛页面)! 从2023年9月19日-10月24日(北京时间…

基于微服务的第二课堂管理系统(素质拓展学分管理平台)SpringCloud、SpringBoot 分布式,微服务

基于微服务的第二课堂管理系统 一款真正的企业级开发项目,采用标准的企业规范开发,有项目介绍视频和源码,需要学习的同学可以拿去学习,这是一款真正可以写在简历上的校招项目,能够真正学到东西的一个项目,话…

【论文写作】符号:矩阵、向量的乘法、内积、点积等

【论文写作】符号:矩阵、向量乘法、内积、点积等 文章目录 【论文写作】符号:矩阵、向量乘法、内积、点积等1. 矩阵乘法1.1 矩阵乘积1.2 矩阵哈德玛乘积1.3 矩阵克罗内克积 2. 向量乘法2.1 向量点积、内积2.2 向量Hadamard积2.3 向量外积2.4 向量叉积 1.…

科研之路(2023.9.22)

前言 理解小车底盘代码,为了轨道机器人研究 笔记

2023最新SRC漏洞挖掘快速上手攻略!(小白也能行,真的不试试吗?)

前言 随着网络安全的快速发展,黑客攻击的手段也越来越多样化,因此SRC漏洞挖掘作为一种新的网络安全技术,也在不断发展和完善。那么,作为一个网安小白如果想要入门SRC漏洞挖掘,需要掌握哪些知识呢?以下是本…

深入了解接口测试:方法、工具和关键考虑因素(一)

接口测试是软件测试中的一项重要工作,它涉及到系统与系统之间的交互点。接口可以是外部接口,也可以是内部接口,包括上层服务与下层服务接口以及同级接口。在接口测试中,我们需要确保接口能够按照预期的方式进行通信和交互&#xf…

[JAVAee]Spring MVC

目录 Spring MVC框架 MVC Spring MVC的功能 用户与程序的连接 RequestMapping 指定为Get请求 指定为Post请求 获取参数 单个参数 表单传递多个参数 传递对象 后端参数重命名(后端参数映射) 设置参数必传/非必传 获取JSON对象 获取URL中的参数 上传文件 获取…

FPGA project : DHT11

我犯下的错误: 1,在START状态跳转到REPLAY状态,sda会由高电平跳转到低电平。这个下降沿是传感器产生低电平响应而产生的。而不是传感器准备高电平结束而产生的。 REPLAYtoWAIT_2S ( state_c REPLAY ) && (nege && fl…

Java本地缓存框架Caffeine介绍

Caffeine是一个进程内部缓存框架,使用了Java 8最新的[StampedLock]乐观锁技术,极大提高缓存并发吞吐量,一个高性能的 Java 缓存库,被称为最快缓存。 缓存简介 (一)缓存对比 从横向对常用的缓存进行对比&a…

(本地安装clickhouse)执行 nstall/doinst.sh时报错: cp: 无法创建普通文件“/usr/bin/clickho

问题描述 在本地安装clickhouse时, 解压:tar -zxvf clickhouse-common-static-21.9.4.35.tgz -C ../module/ 再进入cd clickhouse-common-static-21.9.4.35/ 执行:install/doinst.sh 报错 报错信息和截图: rootbigdata1 click…

【带RL负载的全波桥式整流器】功能齐全的单相非控整流器(Simulink)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Qt: 鼠标形状设置

设置全局鼠标形状 设置完毕后,整个APP的任何窗体,包括Dialog中的鼠标形状都会被修改为设定类型,某一个控件设定的鼠标形状将被替换。一般不建议使用 QCursor cursor;//创建鼠标对象 cursor.setShape(Qt::CursorShape::ClosedHandCursor);//…

scikit-learn机器学习算法封装

K近邻算法 K-最近邻(KNN)是一种有监督的机器学习算法,可用于解决分类和回归问题。它基于一个非常简单的想法,数据点的值由它周围的数据点决定。考虑的数据点数量由k值确定。因此,k值是算法的核心。 我们现在已经知道。…

【03】FISCOBCOS配置及使用控制台

官网文档https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/installation.html# 配置及使用控制台 第一步. 准备依赖 安装java (推荐使用java 14) # ubuntu系统安装java sudo apt install -y default-jdk#centos系统安装java sudo yu…

深入了解Java中的StringJoiner类

在Java编程中,字符串的拼接是一个常见的操作。Java提供了多种方法来实现字符串拼接,其中之一就是StringJoiner类。本文将详细介绍StringJoiner的用法和功能。 StringJoiner简介 StringJoiner是Java 8引入的一个用于拼接字符串的工具类。它允许我们以指定…

如何建立团队知识库管理系统,把分散信息有效整理?

对于我们广大企业管理者来说,知识库作为一个「统一的资料收集中心」,意义在于将分散的资料集中起来,统一处理,降低管理成本。 以常见的项目小组为例,如果你希望将小组内优秀的方法论和工作SOP文档在整个部门分享学习&a…

PID之Simulink仿真

昨天,在中南大学面试的老师,老师突然问到如何调PID,关于PID,我只知道一些基本概念,实际中并没有做过相关PID的项目,就连仿真也没搞过,所以今天就照着网上的教程做了PID的仿真,调PID的…

【李沐深度学习笔记】自动求导实现

课程地址和说明 自动求导实现p2 本系列文章是我学习李沐老师深度学习系列课程的学习笔记,可能会对李沐老师上课没讲到的进行补充。 自动求导 # 创建变量 import torch x torch.arange(4, dtypetorch.float32) #只有浮点数才能求导 # 计算y关于x的梯度之前&#x…