资讯专栏INFORMATION COLUMN

new关键字创建对象的过程

陆斌 / 642人阅读

摘要:题目解析先看代码共经过了几个阶段创建一个空对象设置原型链让中的指向,并执行的函数体。如果是引用类型,就返回这个引用类型的对象。

题目解析

先看代码

var Func=function(){
};
var func=new Func ();

new共经过了4几个阶段

1、创建一个空对象
var obj=new Object();
2、设置原型链
obj.__proto__= Func.prototype;
3、让Func中的this指向obj,并执行Func的函数体。
var result =Func.call(obj);
4、判断Func的返回值类型:

如果是值类型,返回obj。如果是引用类型,就返回这个引用类型的对象。

if (typeof(result) == "object"){
  func=result;
}
else{
    func=obj;;
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/96771.html

相关文章

  • [js高手之路]搞清楚面向对象,必须要理解对象创建过程内存表示

    摘要:面向对象编程方式,对于初学者来说,会比较难懂要学会面向对象以及使用面向对象编程,理解对象的创建在内存中的表示,至关重要首先,我们来一段简单的对象创建代码卫庄卫庄上例,我们创建了两个对象和如果有多个类似对象,我们可以通过函数封装,这种函数封装 javascript面向对象编程方式,对于初学者来说,会比较难懂. 要学会面向对象以及使用面向对象编程,理解对象的创建在内存中的表示,至关重要. ...

    binta 评论0 收藏0
  • JS进阶(1) —— 人人都能懂构造函数

    摘要:构造函数的执行过程先说一点基本概念。只有当一个函数以关键字来调用的时候,我们才能说它是一个构造函数。构造函数的返回值构造函数执行过程的最后一步是默认返回。 showImg(https://segmentfault.com/img/bV55lY?w=500&h=312); 大家都知道原型和原型链是 JavaScript 中最经典的问题之一,而构造函数又是原型和原型链的基础,所以先了解清楚...

    Blackjun 评论0 收藏0
  • JavaScript 进阶知识 - 高级篇

    摘要:汪汪汪哈士奇大黄狗输出结果为这样写依然存在问题全局变量增多,会增加引入框架命名冲突的风险代码结构混乱,会变得难以维护想要解决上面的问题就需要用到构造函数的原型概念 showImg(https://segmentfault.com/img/remote/1460000017534338?w=1440&h=900); JS高级 前言 经过前面几篇文章的学习,相信大家已经对js有了大部分的理...

    LiuRhoRamen 评论0 收藏0
  • 面向对象程序设计之创建对象

    摘要:对象的定义无序属性的集合属性的值可以是基本值对象或者函数每个对象都是基于一个应用类型创建的这个引用类型可以是内置的例如也可以是用户自定义的基于创建对象所有的对象都是继承自的因此我们可以从着手创建对象通过关键字创建对象通过对象字面量创建对象基 对象的定义:无序属性的集合,属性的值可以是基本值、对象或者函数.每个对象都是基于一个应用类型创建的,这个引用类型可以是内置的(例如Object A...

    acrazing 评论0 收藏0
  • 什么是面向对象

    摘要:第一章面向对象小白是一门完全面向对象的编程语言嗯什么是面向过程什么又是面向对象呢大佬在我们正式进入学习这部分前,了解一下面向过程和面向对象这两个概念,对于我们接下来的学习有很大的好处。这一部分我们会在面向对象学习结束后进行系统的整理和总结。 showImg(https://segmentfault.com/img/remote/1460000019303357); 第一章 面向对象 小...

    DirtyMind 评论0 收藏0

发表评论

0条评论

陆斌

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<