new 一个对象发生了什么

Function A(){}; new A() 发生了什么?

  1. var obj = {}
  2. obj.[[proto]] === A.prototype
  3. A.call(obj)

解析:

  首先创建一个空对象
  指向构造函数的原型链
  执行构造函数,将 this 上属性拷贝到空对象

注意:若构造函数中返回this或返回值是基本类型(number、string、boolean、null、undefined)的值,则返回新实例对象;若返回值是引用类型的值,则实际返回值为这个引用类型。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 10,726评论 0 21
  • 什么是原型语言 只有对象,没有类;对象继承对象,而不是类继承类。 “原型对象”是核心概念。原型对象是新对象的模板,...
    zhoulujun阅读 6,915评论 0 12
  • 第一章 错误处理: 错误: 程序运行过程中,导致程序无法正常执行的现象(即bug) 现象: 程序一旦出错,默认会报...
    fastwe阅读 4,900评论 0 1
  • 函数和对象 1、函数 1.1 函数概述 函数对于任何一门语言来说都是核心的概念。通过函数可以封装任意多条语句,而且...
    道无虚阅读 10,218评论 0 5
  • 有人问我,你为什么叫弹剑唱阳春呢? 其实并不复杂:先说弹剑。《冯谖客孟尝君》中,冯谖对孟尝中所给的待遇不满,于是弹...
    弹剑唱阳春阅读 4,294评论 2 1

友情链接更多精彩内容