美文网首页
关键词new都做了些什么

关键词new都做了些什么

作者: 广告位招租 | 来源:发表于2019-03-21 10:37 被阅读0次

构造函数的实例

首先了创建一个构造函数,这个构造函数包含一个原型属性是say

function A(name) {
  this.name = name
}
A.prototype.say = function() {
  console.log('haha')
}

创建一个A的实例并且打印

let a = new A()
console.log(a)
console.log(Object.prototype.toString.call(a)) // [object Object]
console.log(a.__proto__ == A.prototype) // true
image.png

可以看到此时的a是一个object,a的隐式原型指向A的显示原型,根据以上,可以大概推导出new的过程

_new

function _new(...func) {
  let _obj = {} // 创建一个空对象,这个对象将会是返回值
  let [o, ...args] = func // 保存一下构造函数和传入的参数
  o.apply(_obj, [...args]) // 继承属性
  _obj.__proto__ = func.prototype // 原型赋值给隐式原型
  return _obj
}
let a = _new(A, 'tom')
console.log(a)
console.log(Object.prototype.toString.call(a)) // [object Object]
console.log(a.__proto__ == A.prototype) // true
a.say()

结果相同


image.png

相关文章

  • 关键词new都做了些什么

    构造函数的实例 首先了创建一个构造函数,这个构造函数包含一个原型属性是say 创建一个A的实例并且打印 可以看到此...

  • new都干了些什么

    用Java写代码的时候,感觉用的最多的便是new了吧,这几天在恶补Java基础知识的时候突然想到,我们在new一个...

  • new做了什么

    如果不使用new 使用new创建 总结new做了下面的事情(1) 创建一个新对象;(2) 将构造函数的作用域赋给新...

  • new()做了什么

    js new到底干了什么,new的意义是什么? 一、学过JS的都知道 创建对象可以这样 用内置的函数对象来构造对象...

  • JavaScript中的new()做了些什么

    前言 一句话介绍new: new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象类型之一 是不是有...

  • new 操作符都做了些什么

    创建一个空对象 然后让这个空对象的proto 指向构造函数的prototype 执行构造函数,将属性或者方法添加...

  • JavaScript 之 new Fn( ) 到底做了些什么

    更多个人博客:(https://github.com/zenglinan/blog) 如果对你有帮助,欢迎star...

  • js中的new()到底做了些什么

    要创建 Person 的新实例,必须使用 new 操作符。以这种方式调用构造函数实际上会经历以下 4个步骤:(1)...

  • new到底做了什么

    在Javscript中,我们实例化一个类的时候都会使用类似的代码 那么在new的时候,new到底做了什么呢,其实很...

  • new Vue() 做了什么?

    new Vue() 做了什么? src\core\instance\index.js 简单明了:执行了this._...

网友评论

      本文标题:关键词new都做了些什么

      本文链接:https://www.haomeiwen.com/subject/raofvqtx.html