当前位置: 首页 > news >正文

兰州做网站公司免费服务器

兰州做网站公司,免费服务器,建设派网站,温江建设局备案网站创建对象的几种方式 利用对象字面量创建对象 const obj {}2.利用 new Object创建对象 const obj new Object()3.使用 构造函数实例化对象 function Fn(name) {this.name name} const obj new Fn(张三) console.log(obj.name); //张三为什么要用构造函数的形式&#xff1…

创建对象的几种方式

  1. 利用对象字面量创建对象
const obj = {}

2.利用 new Object创建对象

 const obj = new Object()

3.使用 构造函数实例化对象

function Fn(name) {this.name = name}
const obj = new Fn('张三')
console.log(obj.name); //张三

为什么要用构造函数的形式?

有同学可能会问:我们用对象字面量创建对象不是很方面快捷吗,为啥会出现构造函数这种繁琐的创建方式呢?
因为第1,2种方式只比较适用于我们需要创建少量对象时,而如果我们要创建很多个对象,且每个对象的属性有很多属性相同时,我们再用对象字面量去创建对象的话,就会显得代码很冗余了。如:
在这里插入图片描述
而我们使用构造函数创建的话,只需这样:

function Fn(name, age, gender) {this.name = namethis.age = agethis.gender = gender}const peiqi = new Fn('佩奇', 6, '女')const qiaozi = new Fn('乔治', 3, '男')const mon = new Fn('猪妈妈', 26, '女')const dad = new Fn('猪爸爸', 28, '男')

实例化对象时的new到底做了什么呢?

  1. 创建一个空对象
  2. 设置原型链: 把空对象的__proto__属性指向构造函数的prototype对象
  3. 执行构造函数:并进入构造函数Fn中执行操作,把this指向新创建的对象
  4. 返回对象(如果构造器没有手动返回对象,则返回第一步的对象)
function Fn(name, age, gender) {this.name = namethis.age = agethis.gender = gender}// 模拟new实例化过程function myNew(constructorFn, ...args) {const obj = {}obj.__proto__ = constructorFn.prototypeconst result = constructorFn.apply(obj, args)return typeof result === 'object' ? result : obj}const cat = new myNew(Fn, '机器猫', 28, '男')

为什么要执行第二点,即设置原理链

是为了共享构造函数原型中的属性和方法: obj.proto = constructorFn.prototype
在这里插入图片描述

function Fn(name, age, gender) {this.name = namethis.age = agethis.gender = gender}Fn.prototype.say = function () {console.log('sayHi');}function myNew(constructorFn, ...args) {const obj = {}//这样实例化出来的对象就可以使用原型对象中的属性和方法啦obj.__proto__ = constructorFn.prototypeconst result = constructorFn.apply(obj, args)return typeof result === 'object' ? result : obj}const cat = new myNew(Fn, '机器猫', 28, '男')

原型链总结

  • 每个构造函数都有一个prototype属性,该属性指向原型对象,原型对象用来给各个实例化对象共享属性和方法。
  • 每个实例化对象都有一个__proto__属性,该属性也指向原型对象。
http://www.tj-hxxt.cn/news/519.html

相关文章:

  • 社区网站开发进度表百度空间登录入口
  • 北京活动网站制作站外推广方式有哪些
  • app平台开发需要的资源与团队网站建设方案优化
  • 化工集团网站建设 中企动力seo推广知识
  • 衢州网站设计排名电商平台推广
  • 哈尔滨大型网站制作开发云搜索下载
  • 政府网站建设管理经验汇报材料网站更新seo
  • 莆田网站制作网站运营是做什么的
  • 上海网站设计厂家软文广告案例分析
  • 哪个网站做头像比较好百度推广一年收费标准
  • 重构网站软文广告文案
  • 天津是哪个省西安seo学院
  • 成都网站建设服务密需湖南岚鸿案例交换链接平台
  • 网站群信息管理系统个人怎么做网络推广
  • 某些网站网速慢seo推广公司价格
  • 政府网站建设 报价农产品网络营销方案
  • 阿里云 外贸网站免费源码网站
  • 淘宝上做的网站 域名到期可以自己续费吗网站建设的流程是什么
  • 根据网站软件做报告小学生一分钟新闻播报
  • 网站如何收录快平台推广费用
  • 网站seo自己怎么做h5页面制作平台
  • 深圳洛可可设计公司象山seo外包服务优化
  • 做外贸英文网站北京网络推广外包公司排行
  • 湖南省城乡和住房建设厅网站从事网络销售都有哪些平台呢
  • 长岭建设局网站长沙网站seo收费标准
  • 南京做网站价格产品运营推广方案
  • 做外贸无网站如何做seo实战密码电子版
  • 深圳网站开发公司seo实训报告
  • 昆明哪些做网站建设的公司东莞百度seo关键词优化
  • 做门窗网站怎么做什么是seo搜索