首页 > 其他分享 >ES6笔记 - 原型对象扩展

ES6笔记 - 原型对象扩展

时间:2022-12-06 21:55:33浏览次数:42  
标签:ES6 setPrototypeOf proto 对象 Object 笔记 原型 prototype

原型对象扩展

目录

1. __proto__属性

  • __proto__属性用来读取或设置当前对象的prototype对象(原型对象),但是,这不是一个公开的API。这意味实际开发中应该尽量少的使用该属性直接修改或读取对象的原型对象,而是尽可能的使用下面的方法来修改或读取原型对象

2. Object.setPrototypeOf()

  • Object.setPrototypeOf()用来设置一个对象的prototype对象,返回参数对象本身

  • 语法:Object.setPrototypeOf(object, prototype)

    let proto = {};
    let obj = {x:10};
    
    //绑定proto为obj的原型对象
    Object.setPrototypeOf(obj, proto);
    
    //设置原型对象内容
    proto.y = 20;
    proto.x = 10;
    
    //现在可以直接在对象中访问原型对象的内容了
    obj.x;	//10
    obj.y;	//20
    

3. Object.getPrototypeOf()

  • Object.getPrototypeOf()用来读取一个对象的prototype对象

    function Rectangle(){
        //...
    }
    
    var rec = new Rectangle();
    
    Object.getPrototypeOf(rec) ===  Rectangle.prototype;	//true
    
    //注意,一旦你使用setPrototypeOf()修改了原型对象,那么等式将不再成立
    Object.setPrototypeOf(rec,Object.prototype)
    Object.getPrototypeOf(rec) ===  Rectangle.prototype;	//false
    

标签:ES6,setPrototypeOf,proto,对象,Object,笔记,原型,prototype
From: https://www.cnblogs.com/Solitary-Rhyme/p/16960685.html

相关文章

  • ES6笔记 - 扩展运算符
    扩展运算符目录扩展运算符1.数组中的扩展运算符1.1应用场景2.对象中的扩展运算符2.1应用场景3.解构赋值中【不一样的】扩展运算符4.浅拷贝问题1.数组中的扩展运算......
  • JS个人笔记
    1、引入javascript的几种方式<scripttype="text/javascript">window.alert("hellojs");//alert函数会阻塞整个页面加载的作用,当我们把script放到最前面......
  • UE4学习笔记23——【动画】Mixamo自动绑骨并导入虚幻4
    P61.Mixamo自动绑骨并导入虚幻4P61需要插件“MixamoAnimationRetargeting”(200多块......)(这节课就简单听听,以后用到了再看)(桥豆麻袋!不用买这个插件,这节课的东西也能......
  • opencv笔记(车辆识别实现)
    opencv笔记(车辆计数实现)注意:更准确的车辆计数实现应考虑深度学习。目录opencv笔记(车辆计数实现)基本实现思路涉及知识分步骤代码加载视频通过形态学识别车辆对车辆进......
  • django学习笔记-ORM
    0.安装第三方模块pipinstallmysqlclient1.ORM1.1.创建数据库启动mysql服务自带工具创建数据库createdatabasedemo01DEFAULTCHARSETutf8COLLATEutf8_gene......
  • Canvas学习笔记(四)线条操作
    在Canvas中,常见的线条操作属性有:属性说明lineWidth定义线条宽度lineCap定义线帽样式lineJoin定义两个线条交接处的样式常见的线条操作方法有:方......
  • [笔记]docker-compose启动javaweb
    1.Dockfile1准备jdk安装包启动项目jar2文件fromcentosrunmkdir/var/tmp/jdkCOPYjdk-8u321-linux-x64.tar.gz/var/tmp/jdkRUNtarxzf/var/tmp/jdk/jdk-8......
  • Raft笔记
    内容参考自:解读共识算法Raft(1)简介和状态简化出自Lamport的《InSearchofanUnderstandableConsensusAlgorithm》1.Raft把共识算法分为三个子问题:LeaderElection、L......
  • (笔记)关于Typora提示”This beta version of Typora is expired...“的解决办法
      一、问题使用老版本Typora时,会提示下文,并跳转至typora官网,从而没有使用。  二、解决办法修改Typora相应注册表的权限(作为旧版本失效后的一种补充):打开......
  • UML画图笔记
    提纲:1:面向对象技术2:模型与可视化建模3:什么是UML4:UML发展历史5:软件过程6:UML工具7:UML构成8:UML实例9:UML在软件开发各个阶段的应用。 一:面向对象技术二:软件质......