【发布时间】:2016-09-25 12:27:13
【问题描述】:
我尝试制作一个可以显示确认窗口或对话框表单的功能。这两个函数都在同一个窗口中,所以我可能会重复使用这两个函数中的代码。
我想应该是这样的
const MyWindow = function (options) {
};
MyWindow.prompt = function (options) {
..
};
MyWindow.confirm = function (options) {
...
}
MyWindow.alert = function (options) {
...
}
问题是我不知道在哪里绘制窗口。
我已经尝试创建一个新方法
const MyWindow = function (options) {
};
MyWindow.createElements = function (options) {
this.window = document.createElement('div');
this.window.style.height = 300;
this.window.style.width = 300;
document.body.insertBefore(this.window, document.body.childNodes[0]);
};
MyWindow.prompt = function (options) {
this.createElements();
this.window.style.background-color = 'red';
};
但this.createElements() 和this.window 无法从prompt() 函数访问。
你通常如何开发这样的东西?我应该使用 ES6 类吗?
【问题讨论】:
-
您正在使用
MyWindow函数,就像它是一个对象一样(虽然这是可能的)。让它成为一个对象而不是函数。 -
MyWindow应该是单例模块还是实例的构造函数? -
是的,你应该使用 ES6 类。
标签: javascript class module ecmascript-6 prototype