0


javascript-手写new的原理

大家好,从今天开始给大家带来最新一个栏目手写面试常见的面试题,因为最近要准备面试。正好自己也复习一下,找到自己的不足。好啦,今天给大家讲解的面试题是new的原理。相信大家都是知道new这个关键字,可以得到构造函数对应的实例,例如:

  1. let a = new Person('张三', '18')
  2. console.log(a)

得到的结果就是 Person的实例对象

  1. Person { name: '张三', age: '18' }

在面试中呢,问的非常多的无非是:第一个就是可以说一下new的执行过程,第二个就是手写new关键字

这两个问题呢其实是相互依赖,会做第一个就一定会做第二个了,下面我们来说第一个问题就是new的执行过程,new的执行过程分为4步:

1、创建空对象,这个对象作为返回的实例对象

2、将对象的隐式原型属性指向构造函数的显式原型属性

3、将this指向对象

4、返回这个对象

下面我们就来实现一下这个new关键字,我们在js中是没有办法编写关键字的我们可以使用函数代替,过程如下:

  1. 模仿的new关键字
  2. function Mynew(fn,...args){
  3. 1、创建空对象
  4. let obj={}
  5. 2、将对象的隐式原型属性指向构造函数的显式原型属性
  6. obj.__proto__=fn.prototype
  7. 3、将this指向对象
  8. fn.apply(obj,argas)
  9. 4、返回这个对象
  10. return obj
  11. }
  12. 构造函数
  13. function Person(name,age){
  14. this.name=name
  15. this.age=age
  16. }
  17. let a=Mynew(Person,'张三','18')
  18. console.log(a)

上面就手写出了new关键字,这样写下来是不是感觉很简单,其实js原型这些弄懂了就简单了,加油各位未来的大牛赶紧学起来,这期就到这里啦,如果感觉好请点一个赞谢谢!!!


本文转载自: https://blog.csdn.net/weixin_59554510/article/details/126431825
版权归原作者 会给我晚安吗 所有, 如有侵权,请联系我们删除。

“javascript-手写new的原理”的评论:

还没有评论