如以下构造函数,使用new关键字:

function One(name, age) {this.name = name;this.age = age;
}
let a = new One();
console.log(a);

手写new,分四步骤,直接贴代码:

//Fun为构造函数, args表示传参
function myNew(Fun, ...args) {// 1.在内存中创建一个新对象let obj = {};// 2.把新对象的原型指针指向构造函数的原型属性obj.__proto__ = Fun.prototype;// 3.改变this指向,并且执行构造函数内部的代码(传参)let res = Fun.apply(obj, args);// 4.判断函数执行结果的类型if (res instanceof Object) {return res;} else {return obj;}
}let obj = myNew(One, "XiaoMing", "18");
console.log("newObj:", obj);

JS如何手写new(一看就懂)相关推荐

  1. JS的手写TRIM函数

    JS的手写TRIM函数 转载于:https://www.cnblogs.com/vibratea/archive/2009/07/24/1530109.html

  2. vue+js纯手写日历(包含农历,节假日)

    vue+js纯手写日历(包含农历,节假日) 使用的js 地址 dataChange.js 插件使用了elementui //完整代码 <template><div><di ...

  3. 纯JS+CSS手写日历

    介绍 今天带来一个纯JS+css手写的日历, 一开始先显示当前日期,比如下方25日就是当前日期会有较深蓝色背景色,鼠标指着的日期是下方图片14日的淡蓝色背景色 上面显示日期,可左右选择上个月或者下个月 ...

  4. 【JS 纯手写轮播图代码】

    轮播图实现 首先需要在同级目录下创建img文件夹,用以储存你需要轮播的图片,注意设置好图片的宽度,以免出现空白区域.然后就可以愉快地实现轮播功能啦~ // An highlighted block & ...

  5. 风尚云网面试题系列—JS高频手写代码题

    目录 实现 Promise 实现一个 call 函数 实现一个 apply 函数 实现一个 bind 函数 浅拷贝.深拷贝的实现 实现一个防抖函数 实现一个节流函数 柯里化函数的实现 Object.c ...

  6. 原生拖拽太拉跨了,纯JS自己手写一个拖拽效果,纵享丝滑

    前言 提到元素拖拽,通常都会先想到用 HTML5 的拖拽放置 (Drag 和 Drop) 来实现,它提供了一套完整的事件机制,看起来似乎是首选的解决方案,但实际却不是那么美好,主要是它的样式太过简陋, ...

  7. 【JavaScript】JS高频手写汇总

    前言 基本上面试的时候,经常会遇到手撕XXX之类的问题,这次准备梳理总结一遍,巩固我们原生JS基础的同时,下次想复习面试手撕题的时候,找起来方便,也节省时间. 实现一个事件委托(易错) 事件委托这里就 ...

  8. js+jquery手写弹出提示框

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  9. 【js实现手写签名板】canvas

    项目多个功能模块都用到签名,所以进行了封装,需要用到的签名的地方,只需要调用一下封好的signature函数,即可返回保存的签名照片(格式:base64,也可自行修改) <!-- 项目的html ...

最新文章

  1. json_encode时中文编码转正常状态
  2. tf.keras.losses.SparseCategoricalCrossentropy() 稀疏交叉熵 损失函数 示例
  3. jQuery是否可以获取与元素关联的所有CSS样式?
  4. POSTMAN 数据关联
  5. Ubuntu 设置程序开机启动(以指定用户身份)
  6. 如何发现 GitHub 上那些有趣好玩的项目?
  7. 近期期刊制作组的工作计划
  8. [POJ2155] Matrix(二维线段树,树套树)
  9. GC算法 垃圾收集器
  10. pycharm Debug问题
  11. 在python中类型属于对象变量是没有类型的_如何理解python对象有类型,变量无类型...
  12. MFC:ListControl用法
  13. IO子系统的层次结构
  14. 《HTML 5与CSS 3 权威指南(第3版·上册)》——第1章 Web时代的变迁
  15. 错误使用 eig 输入矩阵包含 nan 或 inf_特斯拉AI主管提醒你神经网络的几大常见错误...
  16. HTTP方法的幂等性
  17. java导出csv/excel工具类
  18. 基于NFC的毕业纪念卡片
  19. 大数据可视化(七)复杂数据可视化
  20. 大数据应用案例,告诉你最真实的大数据故事

热门文章

  1. 学习HTTP协议——《图解HTTP》
  2. 两个ip是否在同一网段?
  3. AutoJs学习-动态解密
  4. Ubuntu 20.04 ROS noetic 问题解决
  5. 【微信小程序】组件之页面布局
  6. [论文写作笔记] C8 讨论用于增加论文厚度
  7. windows鼠标消息
  8. 身体指数bmi流程图_【新城校区】新生体检丨你了解你的身体吗?
  9. oracle显示上午下午,如何把时间转换成带有上下午字样的格式?
  10. 两性离子洗涤剂的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告