JS 中 new 操作符的简单理解

在声明复杂类型的变量(如函数)时,我们可以通过构造函数的方式进行声明。
如:声明一个函数

var foo = new Function("console.log('i am a function')");

或者通过构造函数的方式新建一些组件时

function F(name){
    this.name = name;
}
var f1 = new F('Couzin')

我们可能知道,这样创造的实例 f1._proto_ = F.prototype ,这样的结果是通过 new 操作符实现的。
那么,在 new 的过程中发生了什么?
实际上就分为简单的三个步骤:

    1. var f1 = {};//创建实例
    1. f1._proto_ = F.prototype;//创建实例
    1. F.call(f1);//初始化实例
      所以函数 F 中的 this 是实例 f1 的实例变量,只能在 f1 中访问到。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 理解 javascript 的原型链及继承 以上所有的运行结果都是 true; 三种构造对象的方法: 通过对象字面...
    你期待的花开阅读 1,673评论 0 3
  • 1,javascript 基础知识 Array对象 Array对象属性 Arrray对象方法 Date对象 Dat...
    Yuann阅读 1,160评论 0 1
  • 0 写在前面的话 大多数的面向对象编程语言中,比如C++和Java,在使用他们完成任务之前,必须创建类(class...
    自度君阅读 1,126评论 0 3
  • 现在,大学生聊的最多的话题,就是创业。顾名思义,创业就是创造出属于自己的事业。有百分之七十的大学生应该都尝试过创业...
    金欧巴阅读 188评论 0 0
  • 图片发自简书App一个人的旅行
    昕芯阅读 156评论 0 1

友情链接更多精彩内容