javascript - 在js里面当new了一个对象时,这中间发生了什么?

查看:300
本文介绍了javascript - 在js里面当new了一个对象时,这中间发生了什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

比如一个构造函数Test

function Test(){
  // 代码}
var test1=new Test();

当new的时候,内部究竟发生了什么?

解决方案

object 大法好

在一切皆为对象的时代,jsObject 可以让我们创建很多相同的对象,继承对象,扩展对象,所以楼主的 new 也可以这么玩:

//楼主对象
function Test(){
  // 代码
  return '楼主';
}

//楼主想要找个 对象1 了
var test1 = new Object();  //楼主产生了一个想法

test1  = Test();  // 楼主希望 对象1 和 对象 长的一样 ,所以 `text1` 也会返回 `楼主` 

楼主在创建时干了什么?

new 关键字做了什么

JavaScript 中,使用 new 关键字后,意味着做了如下四件事情:

  1. 创建一个新的对象,这个对象的类型是 object

  2. 设置这个新的对象的内部、可访问性和[[prototype]]属性为构造函数(指prototype.construtor所指向的构造函数)中设置的;

  3. 执行构造函数,当this关键字被提及的时候,使用新创建的对象的属性; 返回新创建的对象(除非构造方法中返回的是‘无原型’)。

  4. 在创建新对象成功之后,如果调用一个新对象没有的属性的时候,JavaScript 会延原型链向止逐层查找对应的内容。这类似于传统的‘类继承’。

注意:在第二点中所说的有关[[prototype]]属性,只有在一个对象被创建的时候起作用,比如使用 new 关键字、使用 Object.create 、基于字面意义的(函数默认为 Function.prototype ,数字默认为 Number.prototype 等)。它只能被Object.getPrototypeOf(someObject) 所读取。没有其他任何方式来设置或读取这个值。

摘自

送上权威文档飞机票

这篇关于javascript - 在js里面当new了一个对象时,这中间发生了什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆