2014-09-30 119 views
0

我正在使用Canvas和KineticJS处理项目。我加载/创建多个节点和边,并且在各种情况下与这些节点和边进行交互时具有所需的功能。使用匿名函数将事件绑定到KineticJS对象

此刻,我将事件处理程序绑定到这些对象,因为它们是使用匿名函数创建的。事情是这样的:

Node.prototype.setupNode = function(x, y) { 

    this.visual.on('tap', function(e) { 
     console.log(this.id); 
    }); 

    ... 
} 

如果我有两个事件结合每个项目,其中有一些是相当数量的代码行,而且我经常结合几百个节点和边缘对象,是否有更好的方法将这些事件绑定到这些对象,以便我可以提高性能并减少加载时间和资源使用情况?

在此先感谢您提供任何帮助。

回答

0

您可以创建一个名为函数,然后通过它的参考事件绑定功能,像这样:

function handleTap (e) { 
    //your code 
} 

Node.prototype.setupNode = function(x, y) { 
    this.visual.on('tap', handleTap); 
    ... 
} 
+0

如果我创建功能handleTap()的Node.prototype.setupNode函数,而不是外面里面,它是否会消耗更多的资源(通过在每次调用setupNode时构造)? – 2014-10-01 21:21:09

+0

JS引擎做了很多工作来优化代码。所以,我猜测JS解释器将会尽可能地进行这样的优化。但是,不用依赖代码优化器,就可以尽可能多地优化代码。 – 2014-10-02 22:20:27