2

尝试找出使用 ES6 类执行此类操作的语法:

function Component() {

}

Component.prototype.render = style(function() {

});

这是我到目前为止所拥有的:

class Component {

  constructor() {
    super()
  } 

  render style(() {

  });
}

有任何想法吗?

4

2 回答 2

6

由于class只是语法糖,这应该有效:

class Component {
    constructor() {
        super()
    } 
}

Component.prototype.render = style(function() {
});
于 2015-02-16T05:32:10.590 回答
2

torazaburo已经向您展示的内容,http://www.es6fiddle.net/i67l1pjr/

var style=function(fun){
  // do something with fun

  return fun
}

class Component {
    constructor() {
        super()
    }       
}

Component.prototype.render = style(function() {
  console.log('i am invoked');
});


var x=new Component;
x.render();

我假设您的样式函数就像我定义的那样,现在在这种情况下,您可以使用定义方法的旧方法轻松实现所需的结果(创建由另一个函数返回的函数)。

使用 ES-6 语法

现在我们知道 es6 类只是语法糖,我们必须能够像以前一样使用类来实现一切。

看到这个。http://www.es6fiddle.net/i67l1d4e/

var style=function(fun){
  // do something with fun

  return fun
}

class Component {
    constructor() {
        super()
    } 


  render (){    // this is the new render function, you wanted to define

    var fun =style(function() {
      console.log('i am invoked');
       });

    return new fun();
  }

}

var x=new Component;
x.render();

现在这两种方式,做同样的事情..它只是 ES-6 添加的不同语法

于 2015-02-16T08:17:24.303 回答