我有两个课程:MyClass和CBook。我想从CBook类访问MyClass类的所有函数和变量。我怎么能这样做?
MyClass的
import $ from 'jquery';
import {CBook} from './book';
const path = "http://www.mypage.com";
class MyClass {
constructor() {
let _summaryPageUI = new CBook(this);
}
describeBook() {
console.log('test');
}
}
new MyClass();
export {MyClass};
我想访问CBook中MyClass的所有方法:
CBook
class CBook {
constructor(myClass) {
console.log(myClass);
}
}
export {CBook};
答案 0 :(得分:0)
我认为您正在寻找extends属性。请参阅以下文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/extends
或 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes
class myClass extends CBook {
....
}
答案 1 :(得分:0)
class MyClass {
constructor() {
console.log("MyClass instantiated");
}
describeBook() {
console.log("book described");
}
}
class CBook extends MyClass {
constructor() {
super();
console.log("CBook instantiated");
}
}
然后您就可以:
const book = new CBook();
book.describeBook();
您将获得输出:
MyClass instantiated
CBook instantiated
book described
答案 2 :(得分:0)
构造函数是在创建类(对象)的新实例时立即调用的函数。这会初始化对象的初始属性和状态。正如XPX-Gloom所指出的,你使用extends关键字隐式地说'" CBook对象,在实例化时采用MyClass的全部或部分属性"。通过使用super(),您正在调用MyClass的构造函数。这个超级' keyword用于进行超级构造函数调用,并允许访问父方法。 example
答案 3 :(得分:0)
在ES6中,所有类实例方法都是公共的,因此您可以通过创建MyClass
的实例并调用它的方法来访问它们:
class CBook {
constructor(myClass) {
this.myClass = myClass;
}
someMethod() {
this.myClass.describeBook()
}
}
答案 4 :(得分:0)
基于您正在使用的术语"功能" - 我想你想把你的函数定义为static,这样就可以在类而不是实例上调用它们:
定义:
class foo {
static someFunc() { console.log("foo:someFunc") }
}
呼叫:
foo.someFunc();
控制台出局:
foo:someFunc
表示值
添加课后定义
foo.someValue = "myValue";
然后:
console.log(foo.someValue)
将输出:myValue