javascript - JS:重塑一个类
问题描述
我正在尝试重新制定我的课程,以便我可以执行以下操作:
let myPlayer = new NewPlayer().init;
let player = myPlayer('id', myConfigObj, {});
我希望能够像那样初始化它,但我不知道该怎么做。是否可以像那样重组它,以便我可以那样使用它?
class NewPlayer {
constructor() {
this.player = {};
}
init() {
{}
}
}
解决方案
您将对 init 函数的引用存储在 中myPlayer
,但该this
函数的 未绑定到实例。它实际上是undefined
。
这是我建议的修复:
import videojs from 'video.js';
class NewPlayer {
constructor() {
this.player = {};
}
get init() {
return this._init.bind(this)
}
_init(videoPlayerID, videoJSConfig, ivsTech) {
if (ivsTech) {
ivsTech(videojs);
};
videoJSConfig.techOrder = ['AmazonIVS'];
this.player = videojs(videoPlayerID, videoJSConfig);
return this.player;
}
}
推荐阅读
- ios - Swift - 多个 UI 更改相互阻塞
- android - Android-在 Firebase 数据库中编写节点内的 Arraylist
- javascript - 在轴和起点之间添加间距
- rally - CA Agile Central Rally - 任务之间的依赖关系
- node.js - 我可以从 package.json bin 脚本运行命令吗?
- docusignapi - 信封获取 - 如何获取通用 JSON 响应
- python - Pandas for loop over dataframe 提供了太多需要解包的值
- java - Akka 演员在工作中神秘死亡
- python - 如何更新在 Mac 上的 PyCharm 中运行的 pyspark 使用的 Java 密钥库?
- php - 为什么在登录失败时阻止用户而不是IP?