Javascript 如何正确引用ES6类中的内联函数?

Javascript 如何正确引用ES6类中的内联函数?,javascript,ecmascript-6,paperjs,Javascript,Ecmascript 6,Paperjs,因此,我尝试使用paper.js在画布上设置一些项目的动画。目前我有这个(为了简洁起见,有些项目被删掉了): 类精灵{ 构造函数(){ 制作动画(); } 制作动画(){ 纸张.视图.附件('框架',功能(事件){ if(event.count

因此,我尝试使用paper.js在画布上设置一些项目的动画。目前我有这个(为了简洁起见,有些项目被删掉了):

类精灵{
构造函数(){
制作动画();
}
制作动画(){
纸张.视图.附件('框架',功能(事件){
if(event.count
问题是动画最终会启动,但实际上从未停止。我也试过了

animate() {
        paper.view.attach('frame', doAnimation);
        function doAnimation(event){
            if (event.count < destinationX * tileWidth) {
                //animate stuff
            } else {
                //exit here
                paper.view.detach('frame', doAnimation);
            }
        }
    }
animate(){
纸。视图。附加('框架',方向);
函数执行(事件){
if(event.count

但这实际上不会导致动画附加到视图,也不会启动。我应该在这里使用什么语法来正确连接所有内容?

您使用的方法与ES5中相同。@FelixKling,ES5没有类语法,因此此
的行为会发生变化。我想这就是为什么我不能让它退出。@Alex:this
函数中的行为与类语法无关。你有一些ES5代码吗?从第二个代码中得到的错误是什么?看起来它的工作原理应该没有什么不同(除了退出案例)。在ES6中,此
的唯一“更改”是带有箭头功能。但这里没有使用任何箭头函数。您似乎希望
引用第一个示例中的函数。事实并非如此,也从未如此。我不熟悉paper.js,但第二个示例在技术上看起来是正确的。您必须为函数指定一个名称才能引用它。在第一个示例中,您也可以这样做。如果第一个版本从未停止,第二个版本从未启动(或似乎没有启动),那么您的条件(或计算)很可能有问题。您的操作方式与ES5相同。@FelixKling,ES5没有类语法,因此,
这个
的行为改变了。我想这就是为什么我不能让它退出。@Alex:this在
函数中的行为与类语法无关。你有一些ES5代码吗?从第二个代码中得到的错误是什么?看起来它的工作原理应该没有什么不同(除了退出案例)。在ES6中,此
的唯一“更改”是带有箭头功能。但这里没有使用任何箭头函数。您似乎希望
引用第一个示例中的函数。事实并非如此,也从未如此。我不熟悉paper.js,但第二个示例在技术上看起来是正确的。您必须为函数指定一个名称才能引用它。在第一个例子中,你也可以这样做。如果第一个版本从未停止,第二个版本从未开始(或似乎没有开始),那么你的条件(或计算)可能有问题。
animate() {
        paper.view.attach('frame', doAnimation);
        function doAnimation(event){
            if (event.count < destinationX * tileWidth) {
                //animate stuff
            } else {
                //exit here
                paper.view.detach('frame', doAnimation);
            }
        }
    }