Я пытаюсь создать класс, который расширяет Function
.Определить класс, который расширяет функцию
var MyClass = class MyClass extends Function {
constructor(func, /*some other things*/) {
//this is not defined in extended classes for some reason
var newThis = func;
//assign other stuff to newThis
return newThis;
}
//methods
}
Сначала я думал, что это будет работать, но instanceof
проверка показала, что созданный объект был просто регулярная функция без какой-либо из моих методов или свойств. Тогда я понял, что мне нужно использовать ключевое слово super
для construct
a Function
.
var newThis = super(func.toString().split('(')[1].split(')')[0].split(','),
func.toString().split('{')[1].split('}')[0])
Это работает, но это не соответствует политике безопасности контента (что-то подобное), что означает, что он не будет работать в хром приложениях.
Почему вы хотите продлить 'Function'? – Fresheyeball
Поскольку я хочу создать функционально подобный класс, который имеет некоторые дополнительные методы и свойства –
ха-ха. Добавление методов к функции. Это звучит немного глупо. –