ES6类:在另一个函数中包装方法实现

ES6 Classes: Wrap method implementation in another function

本文关键字:包装 方法 实现 函数 另一个 ES6      更新时间:2023-11-27

试图找出使用ES6类执行类似操作的语法:

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

这就是我目前所拥有的:

class Component {
  constructor() {
    super()
  } 
  render style(() {
  });
}

有什么想法吗?

由于class只是语法糖,因此它应该起作用:

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

这是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();

我假设你的风格函数和我定义的一样,现在在这种情况下,你可以使用定义方法的旧方法轻松地获得想要的结果(创建另一个函数返回的函数)。

USing 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 添加的不同语法