01 # 手写 new 的原理

编程入门 行业动态 更新时间:2024-10-25 08:16:03

01 # 手写 new 的<a href=https://www.elefans.com/category/jswz/34/1770123.html style=原理"/>

01 # 手写 new 的原理

new 做了什么?

  1. 在构造器内部创建一个新的对象
  2. 这个对象内部的隐式原型指向该构造函数的显式原型
  3. 让构造器中的 this 指向这个对象
  4. 执行构造器中的代码
  5. 如果构造器中没有返回对象,则返回上面的创建出来的对象

手写 new 的过程

new 是一个运算符,只能通过函数的方式去模拟

<script>function Person(name, age) {this.name = name;this.age = age;}// 使用 kaimoPerson 函数去模拟 new 运算符function kaimoPerson(fn, ...args) {// 1) 创建一个对象let obj = {};// 2) 让对象的隐式原型指向 fn 的显式原型obj.__proto__ = fn.prototype;// 3) 改变 this 指向;4) 执行 fnfn.apply(obj, args);// 5) 返回对象return obj;}let p1 = new Person("kaimo", 313);console.log("p1---->", p1);let p2 = kaimoPerson(Person, "kaimo", 313);console.log("p2---->", p2);
</script>

更多推荐

01 # 手写 new 的原理

本文发布于:2023-12-03 10:18:44,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1654236.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:原理

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!