ES6类:另一个函数中的Wrap方法实现

时间:2015-02-16 05:23:11

标签: javascript ecmascript-6 babeljs

试图找出使用ES6类做这样的事情的语法:

function Component() {

}

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

});

这是我到目前为止所做的:

class Component {

  constructor() {
    super()
  } 

  render style(() {

  });
}

有什么想法吗?

2 个答案:

答案 0 :(得分:6)

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

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

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

答案 1 :(得分:2)

heretorazaburo已经向您展示的内容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 classess只是语法糖,我们必须能够像以前一样使用类来实现一切。

看到这个。 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添加的不同语法