ES6语法:对象的新增方法——Object(__proto__属性,Object.setPrototypeOf(),Object.getPrototypeOf())

Object方法在ES6中属于深入拓展的内容,能够了解知晓即可,底层逻辑爱好者可以深入了解。
在这里插入图片描述

文章简介

本文是一篇关于ES6中对象的新增方法——Object的知识文章。主要内容为 __proto__属性 Object.setPrototypeOf() Object.getPrototypeOf() 。在文章中会从理论和实践两个角度入手,代码片段可能比较多,需要耐心阅读。本文紧接ES6专栏ECMAScript(ES6)第五幕之【对象的新增方法——Object】(Object.getOwnPropertyDescriptors())中内容,进一步学习对象的新增方法。创作不易!多多关照!!

主要内容

![在这里插入图片描述](https://img-blog.csdnimg.cn/ea90a04b83274706bd18655d61212673.png

__proto__属性

__proto__属性(前后各两个下划线),用来读取或设置当前对象的原型对象(prototype)。目前,所有浏览器都部署了这个属性。

// es5 的写法
const obj = {
   
  method: function() {
    ... }
};
obj.__proto__ = someOtherObj;

比较主流的是es6写法 更加适应时代发展

// es6 的写法
var obj = Object.create(someOtherObj);
obj.method = function() {
    ... };

它本质上是一个内部属性,不是一个正式的对外的 API,只是由于浏览器广泛支持,才被加入了 ES6。

  • 无论从语义的角度,还是从兼容性的角度,都不要使用这个属性,而是使用下面的Object.setPrototypeOf()写操作)、Object.getPrototypeOf()读操作)、Object.create()生成操作)代替。

实现上,__proto__调用的是Object.prototype.__proto__
具体实现如下:

Object.defineProperty(Object.prototype, '__proto__', {
   
  get() {
   
    let _thisObj = Object(this);
    return Object.getPrototypeOf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dorable_Wander

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值