- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在学习 JavaScript 的 ES6 类,我似乎理解它们的概念,但我不明白派生类从其基类继承了什么。是类的方法吗?假设一个类的方法是该类的属性是否安全?在这种情况下,它们是原型(prototype)的一部分,因此被原型(prototype)链中的对象继承。那么构造函数呢?构造函数内部定义的属性是否继承?
谢谢您的考虑!
最佳答案
类或多或少只是用于设置原型(prototype)继承的语法糖。
class Derived extends Base {}
function Derived(...args) {
return Base.apply(this, args);
}
Object.setPrototypeOf(Derived, Base);
Object.setPrototypeOf(Derived.prototype, Base.prototype);
super
有一些“魔法”。而且以后有public和private的类字段,但是对象之间的基本关系是一样的。
Is it safe to assume that the methods of a class are properties of said class? In which case, they are part of the prototype and are thus inherited by objects down the prototype chain.
prototype
的属性对象,所有实例都从该对象继承。 IE。
class Foo {
bar() {}
}
function Foo() {}
Foo.prototype.bar = function() {}
property
对象在派生类的原型(prototype)链中,其所有方法都可用于派生类的实例。
Are properties defined inside the constructor inherited?
// Create new instance
var newInstance = Object.create(Derived.prototype);
// Call base constructor with `this` set to new instance
Base.apply(newInstance);
// Call derived constructor with `this` set to new instance
Derived.apply(newInstance);
this.base = 42;
的内容,则该属性将直接在新实例上创建,因为
this
指的是新实例。
Array
),因此确切的流程有点不同。需要特殊处理,但最终结果大致相同。
static
方法,但这些仍然是继承的一部分。
static
方法成为构造函数本身的属性。
class Foo {
static bar() {}
}
function Foo() {}
Foo.bar = function() {}
class Base {
static staticBase() {}
constructor() {
this.base = 42;
}
fromBase() {}
}
class Derived extends Base {
static staticDervied() {}
constructor() {
super(); // necessary since we extend base
this.derived = 21;
}
fromDerived() {}
}
console.dir(Derived);
console.dir(new Derived());
关于javascript - 派生类究竟从其基类继承了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59794094/
Feel free to skip straight to TL/DR if you're not interested in details of the question 简短的序言: 我最近决定
我一直在阅读 A Tour of Go学习Go-Lang到目前为止一切顺利。 我目前在 Struct Fields类(class),这是右侧的示例代码: package main import "fm
Last time I got confused顺便说一下PowerShell急切地展开集合,基思总结了它的启发式如下: Putting the results (an array) within a
我是一名优秀的程序员,十分优秀!