ES6基础之——__proto__

Stella981
• 阅读 558

__proto__:前面两个下划线,后面两个下划线,ES6的__proto__可以的得到或者设置对象的prototype

使用__proto__可以直接在对象表达式里面设置prototype,例子:

let breakfast = {
  getDrink(){
    return 'tea'
  }
}

let dinner ={
  getDrink(){
    return 'bear'
  }
}

let sunday = {
  __proto__:breakfast
}
console.log(sunday.getDrink()); //tea

//判断sunday这个对象的prototype是否等于breakfast

console.log(Object.getPrototypeOf(sunday)===breakfast) //true

使用__proto__设置对象的prototype

sunday.__proto__=dinner;
console.log(sunday.getDrink()); //bear
console.log(Object.getPrototypeOf(sunday)=== dinner); //true
点赞
收藏
评论区
推荐文章
Souleigh ✨ Souleigh ✨
3年前
彻底搞懂 JS 中的 prototype、__proto__与constructor
1\.前言作为一名前端工程师,必须搞懂JS中的prototype、proto与constructor属性,相信很多初学者对这些属性存在许多困惑,容易把它们混淆,本文旨在帮助大家理清它们之间的关系并彻底搞懂它们。这里说明一点,proto属性的两边是各由两个下划线构成(这里为了方便大家看清,在两下划线之间加入了一个空格:proto,读作“dunderpr
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Souleigh ✨ Souleigh ✨
4年前
Js中 constructor, prototype, __proto__ 详解
本文为了解决以下问题:__proto__(实际原型)和prototype(原型属性)不一样!!!constructor属性(原型对象中包含这个属性,实例当中也同样会继承这个属性)prototype属性(constructor.prototype原型对象)__proto__属性(实例指向原型对象的指针)<br/首先弄清楚几个概念:<br/
Stella981 Stella981
3年前
GRPC的metadata使用
文章目录一、简析1、创建metadata2、发送metadata3、接收metadata二、代码举例1、proto文件编写2、server端编写3、client端编写三、实际使用举例四、参考文件在http请求当中我们可以设置head
Stella981 Stella981
3年前
JavaScript学习总结(十七)——Javascript原型链的原理
一、JavaScript原型链ECMAScript中描述了原型链的概念,并将原型链作为实现继承的主要方法。其基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法。在JavaScript中,用__proto__属性来表示一个对象的原型链。当查找一个对象的属性时,JavaScript会向上遍历原型
Stella981 Stella981
3年前
JavaScript Prototype
定义和用法prototype属性使您有能力向对象添加属性和方法。实例在本例中,将展示如何使用prototype属性来向对象添加属性:<scripttype"text/javascript"functionemployee(name,job,born){this.n
Wesley13 Wesley13
3年前
JS函数高级
原型与原型链所有函数都有一个特别的属性:prototype:显式原型属性所有实例对象都有一个特别的属性:__proto__:隐式原型属性显式原型与隐式原型的关系函数的prototype:定义函数时被自动赋值,值默认为{},即用为原型对象
Stella981 Stella981
3年前
ES6对象的super关键字
super是es6新出的关键字,它既可以当作函数使用,也可以当作对象使用,两种使用方法不尽相同1.super用作函数使用的时候,代表父类的构造函数,es6规定在子类中使用this之前必须先执行一次super函数,super相当于Father.prototype.constructor.call(this)classFather{
Wesley13 Wesley13
3年前
ES6面向对象
ES6面向对象js中的面向对象functionUser(name,age){this.namename;//定义属性this.ageage;}//通过原型添加方法User.prototype.showNamefuncti
Wesley13 Wesley13
3年前
nodom2改造
首先增加了Object的clone方法,代码如下:/对象复制@paramexpKey不复制的键正则表达式或名@return复制的对象/Object.prototype.clonefunc