Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ES6类:这是原型扩展另一个类的证明吗?

ES6类:这是原型扩展另一个类的证明吗?
EN

Stack Overflow用户
提问于 2016-03-04 12:40:45
回答 1查看 244关注 0票数 3

在玩Babel.js和对类进行一些扩展时,我意识到了一些可能是区分公共类继承的好方法(C#,Java.)以及prototype (我在这里并不是说类)继承。

将以下内容提供给基类:

代码语言:javascript
运行
AI代码解释
复制
class Menu {

  constructor(){}

  render(){
    this.addObjectsToStage();
  }

  addObjectsToStage() {
    var objects = this.objects.getAllObjects();
    for (var category in objects) {
      if (objects.hasOwnProperty(category)) {
        for (var type in objects[category]) {
          if (objects[category].hasOwnProperty(type))
            this.stage.addChild(objects[category][type]);
        }
      }
    }
  }

}

及其子类:

代码语言:javascript
运行
AI代码解释
复制
class MainMenu extends Menu{

  constructor(stage, options) {
    super();
    this.stage = stage;
    this.objects = new MenuObjects(options);
  }
}

现在我要指出的是,超类this.objects.getAllObjects()菜单正在调用属性(函数"addObjectsToStage")。

在面向对象的“公共”语言中,您将无法访问仅在创建子类实例时定义的属性。因此,在我看来,这是继承风格不同的一个重要标志。

所以我现在想知道的是我到底是对的还是完全错的!

EN

回答 1

Stack Overflow用户

发布于 2016-03-04 13:38:14

我不擅长java或c#等语言中的类继承。但是您的示例将在javascript中起作用。但正如注释中所述,只有当菜单实例是MainMenu实例时,它才能工作。

我看到许多java开发人员在javascript中工作,并且不理解javascrpit的自由。他们需要并且想要工具来告诉他们他们所写的东西是否有效。这就是为什么我们看到越来越多的子语言构建在javascript之上,具有“类继承”的感觉。但这不是javascript的工作方式。因此,他们更好地学习和阅读关于闭包、函数范围和原型的知识。Javascrpit非常简单,它迫使您编写好的逻辑代码。

所以我的答案是:是的,你说得很对。这是类继承和原型继承之间区别的一个重要标志。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35805637

复制
相关文章
ES6:原型、类、继承
JavaScript 没有类,只有对象!所谓的类、继承都只是借助 JavaScript 原型链机制模拟实现的。事实上 ES6 中新加入的 class、extends、super 关键字也只不过是现有原型链特性的语法糖,只是起到了简化编程的作用。
WEBJ2EE
2019/07/19
8170
ES6:原型、类、继承
【JS 构造|原型|原型链|继承(圣杯模式)|ES6类语法】下篇
❗️ ❗️ ❗️本篇系将带来JavaScript中的构造——原型——原型链——继承——ES6类语法系列知识完整讲解。 ❗️ ❗️ ❗️ ❕上篇涉及:构造——原型——原型链 ❕下篇涉及:继承——ES6类语法
好吃懒洋洋
2022/11/21
7810
【JS 构造|原型|原型链|继承(圣杯模式)|ES6类语法】下篇
【JS 构造|原型|原型链|继承(圣杯模式)|ES6类语法】上篇
❗️ ❗️ ❗️本篇系将带来JavaScript中的构造——原型——原型链——继承——ES6类语法系列知识完整讲解。 ❗️ ❗️ ❗️ ❕上篇涉及:构造——原型——原型链 ❕下篇涉及:继承——ES6类语法
好吃懒洋洋
2022/11/15
7700
【JS 构造|原型|原型链|继承(圣杯模式)|ES6类语法】上篇
uitextfield扩展类可修改placeholder的颜色  (扩展类)
[_tfdUserName setValue:[UIColor whiteColor] forKeyPath:@"_placeholderLabel.textColor"];
conanma
2021/05/11
1.1K0
判断一个类是否另一个类的父类
我们调用Class中isAssignableFrom函数来判断左边的类是否参数中这个类的超类(父类)
阿超
2022/08/16
6800
判断一个类是否另一个类的父类
ES6——类(Class)
ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象的模板。通过class关键字,可以定义类。 ES6 的class可以看作只是一个语法糖,它的绝大部分功能,ES5 都可以做到,新的class写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已。上面的代码用 ES6 的class改写,就是下面这样。
羊羽shine
2019/07/31
1.1K0
Js原型链与类
理解原型链与类有利于我们对代码的封装与简化 # JS原型链理论 # 1、函数与对象的关系 函数是对象,对象都是通过函数创建的。 函数与对象并不是简单的包含与被包含的关系。 # 2、原型的类别 显示原型:prototype,是每个函数function独有的属性。 隐式原型: __proto__,是每个对象都具有的属性。 # 3、原型和原型链 原型:一个函数可以看成一个类,原型是所有类都有的一个属性,原型的作用就是给这个类的一个对象都添加一个统一的方法。 原型链:每个对象都有一个__proto__,它指向它的p
隔壁老陈
2023/01/12
1.1K0
ES6 Class(类)
这里,ES6 的 Point 类的构造方法对应前面 ES5 的构造函数 Point,代码中的 constructor 是构造方法。
Leophen
2019/08/23
4370
ES6 类的使用(class)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/107475.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/21
2400
ES6 class的类继承
类继承是一种通过创建子类来继承父类的属性和方法的方式。通过类继承,子类可以获得父类的实例属性和方法,并且可以通过子类的原型链访问父类的静态属性和方法。这种继承方式允许子类扩展父类的功能,并添加自己的属性和方法。
堕落飞鸟
2023/05/23
3970
date类和calendar类的区别_java类中可以定义类吗
在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理。这里简单介绍一下Date类的使用。
全栈程序员站长
2022/09/30
1.4K0
ES6特性之:类
面向对象编程是一个很流行也很让人容易理解的方法。面向对象编程中的一个核心概念就是类,我们可以把事物都抽象成一个个的类来描述他们的信息和行为。
一斤代码
2018/08/21
2290
对Javascript 类、原型链、继承的理解
  和其他面向对象的语言(如Java)不同,Javascript语言对类的实现和继承的实现没有标准的定义,而是将这些交给了程序员,让程序员更加灵活地(当然刚开始也更加头疼)去定义类,实现继承。(以下不讨论ES6中利用class、extends关键字来实现类和继承;实质上,ES6中的class、extends关键字是利用语法糖实现的)
smy
2019/02/13
6950
对Javascript 类、原型链、继承的理解
python一个类中调用另一个类的方法
# 创建一个A类 class A: def a(self): return print('这里是A类') class B: # 实例化A类达到调用目的 def run_a(self): self.a=A() self.a.a() # 这样就调用到了a类的方法了 # 继承自A类,什么是继承,请自行百度 直达链接 class C(A): pass c=C() # 实例化C类 # 有了继承自A的方法,所以直接使用A类
kirin
2020/05/19
11.7K0
优秀原型设计欣赏:社交类App原型制作-LinkedIn
LinkedIn是全球最大的职业社交平台,通过LinkedIn可以连接机会并挖掘你的专业潜力。该应用程序可以更轻松地发现、连接和培养与重要人物的关系,搜索和申请工作,并获得有关主题和公司的最新信息。这类社交App,最重要的就是前期个人信息的填写,因此在原型中,做了大量个人信息填写相关的页面,这其中的流程和逻辑是值得学习的。
奔跑的小鹿
2018/03/06
4.4K0
优秀原型设计欣赏:社交类App原型制作-LinkedIn
ES6中的对象与类
面向对象更贴近我们的实际生活,可以使用面向对象描述现实世界事物,但是事物分为具体的事物和抽象的事物
星辰_大海
2020/10/15
5700
ES6中的对象与类
Kotlin 类扩展实现原理
在 Kotlin 中当项目集成第三方 SDK 的时候,如果需要为其中某个类新增方法来可以通过 className.methodName(){}, 即 类名.方法名 的形式来扩展函数,那么同样和 Java 一样是 JVM 语言的 Kt 为什么就可以实现这种功能呢,以下为一个例子,借助它来详细探讨一下实现原理及细节。
萬物並作吾以觀復
2021/07/20
4340
JS原型继承和类式继承
类式继承(构造函数) JS中其实是没有类的概念的,所谓的类也是模拟出来的。特别是当我们是用new 关键字的时候,就使得“类”的概念就越像其他语言中的类了。类式继承是在函数对象内调用父类的构造函数,使得自身获得父类的方法和属性。call和apply方法为类式继承提供了支持。通过改变this的作用环境,使得子类本身具有父类的各种属性。 var father = function() { this.age = 52; this.say = function() { alert('hello
庞小明
2018/03/07
3.5K0
JS原型继承和类式继承
效率类APP原型制作分享----Timeglass
本原型由国产Mockplus(原型工具)和iDoc(智能标注,一键切图工具)提供。
奔跑的小鹿
2019/01/28
1.1K0
效率类APP原型制作分享----Timeglass
JS es6的Class类详解
JavaScript 语言中,生成实例对象的传统方法是通过构造函数和原型的组合模式.ES6 提供了更接近传统语言(java)的写法,引入了 Class(类)这个概念,作为对象的模板。通过class关键字,可以定义类。
全栈程序员站长
2022/06/28
4.7K0
JS es6的Class类详解

相似问题

ES6类原型-类型解析

10

ES6父类重写子原型

11

javascript es6类原型链修改

112

将原型转换为ES6类

116

ES6类扩展另一个类并多次调用超级类?

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档