对new关键字的描述:引自MDN

new关键字会做以下操作:

1.创建一个空的简单Javascript对象 (即{});

2.链接该对象(即设置该对象的构造函数)到另一个对象;

3.将步骤1新创建的对象作为this的上下文;

4.如果该函数没有返回对象,则返回this;

call实现不传对象

function myNew(fn) {// 以构造函数fn的prototype为原型 创建一个新的简单对象let o = Object.create(fn.prototype)// 改变fn的this指向到o,并执行fnlet k = fn.call(o);// 如果构造函数没有返回对象,则返回oif (typeof k === 'object') {return k;} else {return o;}}

apply 传递参数

function myNew(fn, ...args) {// 以构造函数fn的prototype为原型 创建一个新的简单对象let o = Object.create(fn.prototype)// 改变fn的this指向到o,并执行fnlet k = fn.apply(o, args);// 如果构造函数没有返回对象,则返回oif (typeof k === 'object') {return k;} else {return o;}}

js实现new关键字相关推荐

  1. JS中this关键字

    JS中this关键字 this是javascript的一个关键字,随着函数使用场合不同,this的值会发生变化.但是总有一个原则,那就是this指的是调用函数的那个对象. 1.全局代码中的this a ...

  2. js根据数据关键字实现模糊查询功能

    js根据数据关键字实现模糊查询功能 模糊查询 实现模糊查询功能的步骤和一般方法 第一步:创建假数据或请求接口数据 第二步:分析数据格式,处理数据 第三步:验证功能 完整代码 模糊查询 模糊查询功能是指 ...

  3. JS中this关键字详解

    本文主要解释在JS里面this关键字的指向问题(在浏览器环境下). 阅读此文章,还需要心平气和的阅读完,相信一定会有所收获,我也会不定期的发布,分享一些文章,共同学习 首先,必须搞清楚在JS里面,函数 ...

  4. 深入理解JS中this关键字

    为什么要使用this关键字 看个例子 function indetify() {retun this.name.toUpperCase()}var obj = {name: 'zz'}indetify ...

  5. JS 基础 —— JavaScript 关键字(keyword)与保留字

    转载于: JavaScript 关键字(keyword)与保留字 一.JavaScript 所有关键字: break case catch continue default delete do els ...

  6. js中的关键字总结呢

    1.document.write(""); 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document->html->(head,body) 4. ...

  7. JS的this关键字

    JavaScript中的this关键字是一个难以琢磨的概念,是一个依赖于它的执行环境而被解析的关键字.简单说就是谁调用这个方法,方法里的this就是谁. 1,在JS文件中直接alert(this);t ...

  8. js中的关键字和保留字

    前两天面试官问了我一道题:你知道js有哪些保留字吗? 当时自己就说了abstract,try,catch,this,其中最重要的就是this这个关键字了. 然后面试官问,你说的this是关键字,我问的 ...

  9. JS标识符、关键字、保留字

    1.标识符 标识符:是指开发人员为变量.属性.函数.参数取的名字. 标识符不能是关键字和保留字 2.关键字 是指JS本身已经使用了的字 , 不能在用他们充当变量名.方法名 包括:break . cas ...

  10. new 实例化对象是啥意思_前端经典面试题解密:JS的new关键字都干了什么?

    写在前面: new关键字在实例化获取对象时都做了什么?是一道经常出现在前端面试时的问题.如果只是简单的了解new关键字是实例化构造函数获取对象,是万万不能够的.更深入的层级发生了什么呢?同时面试官想从 ...

最新文章

  1. Android库so文件及skia函数的调用
  2. Performance — 前端性能监控利器
  3. php图片自动裁剪工具,php图片自动裁剪工具,解决图片变形问题,缩略图问题
  4. lesson4-Qt窗口
  5. 背水一战 Windows 10 (19) - 绑定: TemplateBinding 绑定, 与 RelativeSource 绑定, 与 StaticResource 绑定...
  6. 【云炬大学生创业基础笔记】第1章第1节 创新和创业有什么样的关系?
  7. MySQL学习笔记(6)之设计范式
  8. 使用 Cake 推送 NuGet 包到 AzureDevops 的 Artifacts 上
  9. Python MetaClass
  10. Python学习笔记001——Linux
  11. 明华RD读卡器校验密码问题
  12. python用什么编译器-python用什么编译器
  13. 大数据技术_ 基础理论 之 数据挖掘与分析
  14. CSS实现标题样式(自用笔记)
  15. HTTP中的status code什么意思
  16. 扩容内存卡用mydisktest失效,教你怎么用USBoot恢复出真实容量
  17. 实现营业执照注册号校验
  18. 如何选择一台适合个人使用的云服务器?
  19. mysql 存储视频_数据库中怎样存储视频?谢谢各位
  20. 阿里云企业认证时不要让员工做个人认证的原因

热门文章

  1. 【iuap5.0特性解读】用友云数据中台 直抵企业数字化的核心
  2. pylearn2 安装及测试 windows 7 64bit
  3. 【多目标追踪算法】Deepsort追踪实战
  4. npm install的时候报错 npm err code 1
  5. 国,省,市,区(县)(四级联动)
  6. Tableau实战 零售业客户分析仪表盘
  7. 城堡幻想曲圣魔大战3(Castle Fantisia)新艾伦希亚战记(即重做版) 新增剧情简介
  8. springBoot中添加log4j日志
  9. 解决.NET Framework 高版本不能卸载,低版本又不能安装的问题
  10. 如何做好数据精细化分析,让你的运营效果指数级增长?