是否有可能創建一個可以使用其原型上的方法實例化函數的類?我試圖將代碼從原型結構轉換爲使用es6類語法。這裏是起點創建一個使用es6類語法創建Function對象作爲實例的類
function createFun(init) {
function fun(newDats) {
this.data = newDats;
// create universe
}
function internalMethod() {
}
fun.data = init;
fun.aMethod = function() {
internalMethod();
}
assign(fun, AnExtendableClass.prototype);
return fun;
}
// and can be used as such
fun = createFun('first');
fun('second');
fun.aMethod();
fun.methodFromExtendableClass('third')
的做作和過度簡化的例子,這就是我試圖
class Fun extend AnExtendableClass {
constructor(init) {
super();
this.data = init;
function fun(newDats) {
this.data = newDatas;
//create universe
}
assign(fun, this);
return fun;
}
aMethod() {
}
}
不幸的是,這並不在沒有回報的工作方法和功能。
什麼是'assign()'? – JLRishe 2015-03-25 05:27:30
使用一個類來創建不是自身實例的東西有什麼意義?有一個產生這個類的函數似乎更合理。將「樂趣」變成一個班級是有道理的。把'createFun'變成一個類是沒有意義的。 – 2015-03-25 05:27:46
@FelixKling把樂趣變成一個班是我正在努力完成的。 createFun只是一個類實例化器。我有其他創建函數,我正在轉換成直接類成功,但這一個類是一個函數對象與方法,這給我的問題。 – 2015-03-25 14:50:06