ES6中的super关键字

news/2024/7/10 23:56:21 标签: ES6, super

在其它面向对象的语言中都能看到一个关键字super。这个关键字的含义通常是“父类”的意思。而在Javascript中,super换了一个与“父类”相近的含义,即“原型(prototype)”。

let proto = {
  foo: 'hello'
};

let obj = {
  foo: 'world',
  find() {
    return super.foo;
  }
};

Object.setPrototypeOf(obj, proto);
obj.find() // "hello"

上面的代码中通过Object.setPrototypeOf方法为obj设定其原型对象为proto

需要注意的是,super关键字仅能用在对象的方法之中,用在其他的地方都会报错

在这里插入图片描述

上面的错误中,第一种写法是将super用在了属性内,但是第二和第三中写法是写在方法内,却也报了错,这是为何?

原因在于,目前只有对象方法的简写法可以让JavaScript引擎确认定义的是对象的方法。

还有一种错误,即super关键字不能单独使用。意思是说,必须访问super的属性或方法,不然就会报错,例如:

在这里插入图片描述

这样单独使用super是会报错的,而访问其属性之后则不会:

在这里插入图片描述


http://www.niftyadmin.cn/n/1700743.html

相关文章

TestComplete识别对象原理

对测试对象的识别能力就成为一个GUI测试工具的最基本功能了。本文介绍TestComplete是如何识别进程、窗体和控件的。命名概念:为了在脚本中记录识别出来的测试对象,TC需要使用到这些对象的属性。每个对象都有很多的属性,像“class name”&…

初识XMLHTTPRequest

提到Ajax,就不得不提XMLHttpRequest对象。它可以让我们从指定的URL中获取数据,而不必让整个页面刷新,也就是说可以只更新网页的局部。 文章目录对象的构造构造函数:常用属性onreadystatechangereadyStaterespoenseTextresponseTyp…

Http的CORS

文章目录浏览器的同源策略CORS例子预检请求浏览器的同源策略 所谓同源策略,就是指浏览器会限制从一个源加载的网页和脚本与其他源的资源交互。这是一种用于隔离潜在恶意软件的机制。 可能有人会奇怪,明明网页是自己写的,自己怎么会请求含有…

C语言选择排序

选择排序是这样的:第一轮拿着第一个元素与其他的元素(从第二个元素开始)相比较,如果有比第一个元素大的数就跟它交换数值,然后第二轮是拿着第二个元素从第三个元素开始比较,一直到最后。 #include<stdio.h> #define G 5int main() {int a[G],i

cocos2dx[3.2](15)——颜色混合BlendFunc

本节参考&#xff1a;http://goldlion.blog.51cto.com/4127613/7678011、概念“混合”是指两种颜色的叠加方式。在新图片将要渲染画到屏幕上的时候&#xff0c;将用在新图片中的红、绿、蓝和透明度信息&#xff0c;与屏幕上已经存在的图片颜色信息相融合。说的具体一点&#xf…

sqlserver字符串替换截取_JavaScript温习小记1:操作字符串。

划重点&#xff1a;1)&#xff1a;字符串查找、连接、截取。2)&#xff1a;编辑字符串3)&#xff1a;比较字符串4)&#xff1a;检测字符串5:)&#xff1a;加解密字符串字符串定义自不必说&#xff0c;3种方式定义&#xff0c;如下图Ps&#xff1a;第三种随便玩玩&#xff0c;别…

对*p++与*++p;(*p)++ 与 ++(*p)的理解

#include<stdio.h> #define G 5 int main() { int a[5]{1,3,5,7,9}; int *p a;int Data 0;// printf("%d ",p); // printf("%d “,p); // printf("%d ",(p)); // printf(”%d ",(p)); return 0;}