Js原型 原型链和new一个对象发生的事情(前端面试经典题目)

本文内容:

  1. 原型与原型链的基本概念
  2. new

1. 原型与原型链的基本概念

每个对象拥有一个原型对象,对象以其原型为模板、从原型继承方法和属性。原型对象也可能拥有原型,并从中继承方法和属性,一层一层、以此类推。这种关系常被称为原型链,层层向上直到一个对象的原型对象为 null。根据定义,null 没有原型,并作为这个原型链中的最后一个环节,它解释了为何一个对象会拥有定义在其他对象中的属性和方法。

准确地说,这些属性和方法定义在对象的构造器函数之上的prototype属性上,而非对象实例本身。其属性值是一个对象,其中包含了该构造函数的所有实例共享的属性和方法。

对象原型

2. new

new constructor[([arguments])]

参数:
constructor:一个指定对象实例的类型的类或函数。
arguments:一个用于被 constructor 调用的参数列表。

new 关键字会进行如下的操作:

  • 创建一个空的简单JavaScript对象(即{});
  • 为步骤1新创建的对象添加属性__proto__,将该属性链接至构造函数的原型对象 ;
  • 将步骤1新创建的对象作为this的上下文 ;
  • 如果该函数没有返回对象,则返回this。

new 运算符

参考文章:https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/Objects/Object_prototypes

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值