创建一个类,该类使用es6类语法将Function对象创建为实例
Create a class that creates Function objects as instance using es6 class syntax
是否可以创建一个类,用原型上的方法实例化函数?我正在尝试将代码从原型结构转换为使用es6类语法。这里是一个人为的和过度简化的起点的例子
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() {
}
}
不幸的是,在没有返回任何方法的情况下,这是不起作用的。
有可能创建一个类,用原型上的方法实例化函数吗?
是的,使用ES6可以将Function
子类化——然而,这并不完全好,因为构造函数需要代码字符串:
class Fun {
constructor() {
super("newDats", `
this.data = newDats;
// create universe
`)
}
data() { }
aMethod() { }
}
let fun = new Fun;
fun(…);
fun.aMethod(…);
我正在尝试将代码从原型结构转换为使用es6类语法。这里是一个人为的和过度简化的起点的例子
不要使用class
语法。新语法非常有限,应该只用于标准类声明。如果你做了任何奇怪的事情——从构造函数返回函数、从其他类复制方法、分配静态属性和使用内部方法在这方面肯定很奇怪——那么就用"旧的"显式方法吧。新的Reflect.setPrototypeOf
在这里给了你更多的自由。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 为effect Composer创建GodRays效果过程
- ES6 const,用于在JavaScript中创建对象原型;这是一种模式吗
- 使用ES6模块创建JS
- 创建一个类,该类使用es6类语法将Function对象创建为实例
- 在 ES6(量角器页面对象)中创建实例的正确方法
- “ReferenceError: require is not defined”,同时使用 ES6/Babel 创建 R
- 从 ES6 中内联的属性子集创建对象
- ES6 使用反射创建新实例
- 在ES6中创建一个具有动态名称的类实例
- ES6:创建ASCII字符串的字符转义序列不正确
- 使用ES6/7从具有与变量名称相同键的变量创建对象
- 如何在ES6中动态创建/生成原型对象
- 创建一个HTML/JS插件在ES6 -如何刷新DOM节点
- 有没有办法在ES6 / Node 4中创建接口?
- 使用es6创建原型
- 使用es6用react native创建计时器
- 创建一个(ES6)承诺而不开始解决它
- 如何在javascript es6/2015中从解析对象中创建具有唯一键的映射
- 在运行时创建ES6类定义,并添加到'要使用的列表