【发布时间】:2020-10-21 07:10:03
【问题描述】:
我正在使用 vanilla JS(无节点)
我在 2 个不同的文件中有 2 个类。 User.js 和 Admin.js 然后我得到了 MainController.js 和 index.php。
我想将import 用户转为管理员并扩展管理员。然后通过这两个类扩展 mainController 并在页面上使用它的代码。问题是当我尝试在 mainController 中扩展任何 class 时,它未定义,我无法在页面上使用它。除非我只导入它而不扩展任何类,否则我可以启动用 mainController 编写的函数,但我无法从脚本或控制台访问它。
我想将所有类从 User 和 Admin 导入 MainController 并在页面上使用它,这样索引就不会有多个脚本标签。
如果所有文件都在 1 个文件中,那么将所有内容添加到 1 个类并使用它不会有问题。问题在于多个文件。
例子:
用户
class User {
constructor(username, email){
// Set up properties
this.username = username;
this.email = email;
this.score = 0;
}.....
管理员
import User from './user.js';
export default class Admin extends User {
constructor(username, email, title){
super(username, email);
this.title = title;
}....
主控制器
import User from './user'
import Admin from "./admin";
class mainController extends User & Admin {
constructor(username, email, title){
super(username, email);
this.title = title;
}
}
索引.php
<script src=maincontroller.js></script>
<script> const xxx = new User()...</script>
【问题讨论】:
-
什么是
mainController extends User & Admin? -
你的
imports 有用吗?除非您为模块使用转译器,否则它们不应该。在我看来,这不是继承问题。 -
节点是“香草”javascript。它只是一个运行 JS 的框架。
-
@adiga。这只是我想要达到利亚姆的一个例子。我知道,但我更喜欢保持简单,所以没有节点
标签: javascript oop inheritance