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

专业做包包的网站大型门户网站后端

专业做包包的网站,大型门户网站后端,广告字设计免费生成,施工企业质量管理应遵循的原则3、手写 new 操作符 new就是新建一个对象,new的过程主要有四个 创建一个新对象:这个新对象的原型被设置为构造函数的 prototype 属性。 Object.create()将新对象的 this 上下文绑定到构造函数:这样构造函数内部的 this 就指向了这个新对象。…

3、手写 new 操作符

new就是新建一个对象,new的过程主要有四个

  1. 创建一个新对象:这个新对象的原型被设置为构造函数的 prototype 属性。

    Object.create()
    
  2. 将新对象的 this 上下文绑定到构造函数:这样构造函数内部的 this 就指向了这个新对象。

    apply()
    
  3. 执行构造函数:构造函数内部的代码被执行,通常会对新对象进行一些初始化操作。

  4. 返回新对象:如果构造函数没有返回一个对象或函数,则默认返回新创建的对象;如果构造函数返回了一个对象或函数,则返回该对象或函数。

我们只要按照着四步来,就可以实现手写new

function myNew(constructor , ...args){//1、创建一个新对象:这个新对象的原型被设置为构造函数的 prototype 属性const obj = Object.create(constructor.prototype);//2、将新对象的 this 上下文绑定到构造函数//apply返回的是一个对象或者函数,如果构造函数没有返回一个对象或函数,则默认返回新创建的对象;如果构造函数返回了一个对象或函数,则返回该对象或函数。const res = constructor.apply(constructor , args);if(res && typeof res === 'object' || typeof res === 'function'){return res;}else {return obj;}
}
  1. apply 方法apply 是 JavaScript 中 Function 对象的一个方法,它允许你在一个指定的 this 值上调用函数,并传入一个数组作为参数

    function.apply(function , args) //改变function当中的this指向
    

​ 返回的是构造函数 function 的执行结果。具体来说,它返回的是构造函数内部通过 return 语句返回的值。如果构造函数内部没有显式返回一个对象或函数,那么 function.apply(obj, args) 将返回 undefined

结果:

function Person(name , age){this.name = name;this.age = age;
}
console.log(new Person('lily' , 19))
console.log(myNew(Person , 'lily' , 19))
console.log(myNew(Array , 1,2,3))

在这里插入图片描述

Person(‘lily’ , 19))
console.log(myNew(Person , ‘lily’ , 19))
console.log(myNew(Array , 1,2,3))


[外链图片转存中...(img-kW8TgG9q-1747474809858)]**总结**:new的手写主要通过它实现的四个步骤进行一一实现,创建一个原型被设置为构造函数的 `prototype` 属性的对象,改变this的指向,判断新对象的类型最后进行对应的处理。

文章转载自:

http://NLgOwZ16.dpwcL.cn
http://NWOgVzG9.dpwcL.cn
http://D8f7iYOr.dpwcL.cn
http://AOBIbBgX.dpwcL.cn
http://In9o4XQy.dpwcL.cn
http://eskKrjGB.dpwcL.cn
http://E8C6sh7n.dpwcL.cn
http://HFkHpWMj.dpwcL.cn
http://ouo72de7.dpwcL.cn
http://rs49ivkr.dpwcL.cn
http://dCQQIcSo.dpwcL.cn
http://7jEwUuZ3.dpwcL.cn
http://ycBf5tfP.dpwcL.cn
http://bFxvHWYs.dpwcL.cn
http://9x2sqfZN.dpwcL.cn
http://aH7752cc.dpwcL.cn
http://of6lAyX5.dpwcL.cn
http://30vK4n6G.dpwcL.cn
http://1za0h2Ql.dpwcL.cn
http://6spwhxmB.dpwcL.cn
http://A7aK3fmA.dpwcL.cn
http://84b5MxMD.dpwcL.cn
http://tcUNtS0a.dpwcL.cn
http://3FlOiXmM.dpwcL.cn
http://rqJ2Rrbq.dpwcL.cn
http://tUxfFNLW.dpwcL.cn
http://PTqqjwqL.dpwcL.cn
http://qdu3G3xd.dpwcL.cn
http://xnSRGA46.dpwcL.cn
http://feq1lTEV.dpwcL.cn
http://www.dtcms.com/wzjs/687932.html

相关文章:

  • 高性能网站建设书籍网站 div
  • 好牛网站建设阿里巴巴logo图片
  • m 的手机网站怎么做wordpress恶意登录
  • 象客企业网站做优化排名金诺网站建设
  • 潍坊网站建设首荐创美网络如何申请免费网站
  • 网站优化公司收费鲁班设计师招聘
  • 东莞市国外网站建设哪家好wordpress如何更新
  • 学校网站建设工作目标网站如何实现临时聊天
  • 网站建设公司费无锡餐饮网站建设
  • 西乡网站建设公司那个网站做3d
  • 重庆建站服务商行业类门户网站建设方案
  • 做壁纸网站的意义宁波公司招聘
  • 做文献ppt模板下载网站有哪些公司网站建设方案模板
  • 搜索引擎 网站推广app小程序定制开发
  • 如何网站平台建设好网站改版数据来源表改怎么做
  • vue做的网站有什么做网站服务器是必须购买的吗
  • 都有哪些可以做app的网站网站建设中图片是什么意思
  • 网易网站开发网站不备案会怎样
  • 什么平台可以做网站服务器网站备案
  • 怎么建设电影网站合肥市住建局官方网
  • 网站外部链接做多少合适呢公司在网站做广告怎么做分录
  • php网站怎么做缓存营销型网站建设的主要流程包括
  • 支付宝网站开发流程网站技建设费计入什么科目
  • 阿里云 ip 网站wordpress搜索表单
  • 湖南英文网站建设企业网站的建设的目标人物是
  • 建设网站要多久到账免费的seo教程
  • 上海家装设计网站网页设计与制作步骤流程
  • 品牌网站建设小蝌蚪1返佣网站都是自己做的
  • 仿视频网站开发智能小程序开发
  • 如何建小企业网站深圳网络推广工资