首页 > 其他分享 >总结对象的创建方式

总结对象的创建方式

时间:2024-07-22 10:29:02浏览次数:7  
标签:总结 obj1 obj3 console name 对象 创建 Object let

总结自定义对象的创建方式:直接创建/工厂方式/create/构造函数/es6类语法

  • 直接创建
let obj1 = { //字面量创建
  name: 'obj1',
  printName: function () {
    console.log(this.name)
  }
};

let obj1_1 = new Object(); //Object()相当于内置的构造函数
obj1_1.name = 'obj1_1'
console.log(Object.getPrototypeOf(obj1) === Object.prototype);// true
console.log(Object.getPrototypeOf(obj1_1) === Object.prototype);// true
  • 工厂方式
// 原型对象是Object
function fact(name) {
  let objFact = new Object();
  objFact.name = name 
  return objFact;
}
let obj2 = fact('obj2') //用类似函数赋值的方式创建对象,提高效率,但会造成重复
console.log(Object.getPrototypeOf(obj2) === Object.prototype);// true
  • Object.create
let objTemp = {
  name: 'objTemp',
  printName: function () {
    console.log(this.name)
  }
}

let obj3 = Object.create(objTemp); //存在一种继承关系,返回的应该是空实例对象

// 当同名时寻找自己,没有找到那个变量,就找原型对象
obj3.printName();//objTemp
obj3.name = 'obj3'
obj3.printName();//obj3
console.log(Object.getPrototypeOf(obj3) === objTemp);// true
  • 构造函数
// 构造函数
// 修改原型,实现共享
function con(name) {
  this.name = name
}
let obj4 = new con('obj4')
console.log(Object.getPrototypeOf(obj4) === con.prototype);// true

标签:总结,obj1,obj3,console,name,对象,创建,Object,let
From: https://www.cnblogs.com/chaofanhaochi/p/18315565

相关文章

  • 7.15-7.21 总结
    做题:主要完成了一些https://www.luogu.com/article/ki71nw88中的dp题目和Eltaos_xingyu的dp。题目不算非常困难。学习:学习了Pfaffian和线段树分裂和Trie树全局+1的Trick。开始了《HandbookofEnumerativeCombinatorics》一本书的阅读,是一本组合计数的书。获得......
  • 【系统架构设计师】十四、软件架构的演化和维护(演化和定义|面向对象软件架构演化过程
    目录一、软件架构演化和定义二、面向对象软件架构演化过程2.1 对象演化2.2消息演化2.3 复合片段演化2.4约束演化三、软件架构演化方式的分类 3.1软件架构静态演化3.2 静态演化的原子演化操作3.2.1 与可维护性相关的架构演化操作3.2.2 与可靠性相关的架构演......
  • C++ 中不应抛出异常的函数总结
    在C++中,异常处理是一个重要的特性,它允许程序在遇到错误时能够优雅地恢复。然而,并不是所有的函数都适合抛出异常。以下是一些不应抛出异常的函数类型:析构函数:析构函数负责资源的清理和释放。如果析构函数抛出异常,并且没有被捕获,那么程序可能会终止。这会导致资源泄露或程序......
  • 类与对象(一)
    目录一.类1.类的定义 2.访问限定符 3.类域二.实例化1.实例化的概念2.对象的大小三.this指针使用注意本篇文章主要讲述类实例化this指针等问题一.类1.类的定义如以下代码class为定义类的关键字,Stack是类的名字,{}中为类的主体,注意类定义结束......
  • Day45.创建表的完整语法
    1.创建表的完整语法_创建表的三个注意点2.创建表的完整语法_创建字段宽度并添加大于该宽度的数据,存入时数据库根据字段进行内容截取3.创建表的完整语法_插入关键字null和mysql的严格模式4.创建表的完整语法_约束条件null,宽度和约束条件的关系......
  • 使用vue-router创建一个简单示例
    以下是一个完整的Vue.js应用示例,展示了如何创建一个简单的Vue.js应用,并使用VueRouter实现不同组件页面之间的导航。这个示例包括组件页面、路由配置以及如何构建和搭建这些页面。1.创建项目首先,创建一个新的Vue3项目:npminitvue@latest按照提示完成项目初始化......
  • 清华训练营预选赛 赛后总结
    汉明码的精髓在于,既然你无法分辨更改检验位的情况,就把检验位放到冲突的位置,消掉那一位位运算的性质:a+b=(a|b+a&b)\(a\oplusb\oplus0\)+\(a\oplusb\oplus(111…11)\)=111…11其实D题才是最简单的题目,比赛的整体难度低于省赛,明年还参加的话开场或许可以考虑和队友分工增进......
  • java面向对象进阶篇--《继承》(万字总结,建议收藏)
    一、前言java部分连载开始,继续开始我们的java篇,前几天一直在调节web项目,刷了点力扣的题,导致java篇拉下了点。希望大家支持一下作者,制作不易。支持一下吧(#^.^#)---------------------------------------->点我❥(^_-) 二、java继承的概念和特点Java中的继承结构指的是通......
  • 如何创建带图片的按钮
    文章目录1.概念介绍2.使用方法2.1filled风格2.2filledTonal风格2.3outlined风格3.代码与效果3.1示例代码3.2运行效果4.内容总结我们在上一章回中介绍了"如何修改NavigationBar组件的形状"相关的内容,本章回中将介绍IconButtion组件.闲话休提,让我们一起Talk......
  • 牛客FreeRTOS刷题总结
    1.在FreeRTOS中延时函数也相对模式和绝对模式,在FreeRTOS中不同的模式用的函数不同,其中函数vTaskDelay()是相对模式(相对延时函数),函数vTaskDelayUntil()是绝对模式(绝对延时函数)。两者都会阻塞任务。具体内容可以看博客这一篇:https://www.cnblogs.com/bathwind/p/18139217......