Javascript链接方法和处理时间

Javascript chaining methods and processing time

本文关键字:处理 时间 方法 链接 Javascript      更新时间:2023-09-26

我正在使用javascript API,我看到了这句话:

因为JavaScript是一种脚本语言,每行代码都会占用宝贵的处理器时间。改善处理器时间的一种方法是链式方法调用,以减少代码行数。对象,如esri。图形和esri符号。*提供返回对象本身的setter方法,允许方法链接。

效率低:

var symbol = new esri.symbol.SimpleMarkerSymbol();
symbol.setSize(10);
symbol.setColor(new dojo.Color([255,0,0]));

更有效:

var symbol = new esri.symbol.SimpleMarkerSymbol().setSize(10).setColor(new dojo.Color([255,0,0]));

当链接方法调用时,您需要在代码的效率和可读性之间找到平衡。如果你避免了链接,你的代码可能会更容易阅读和维护;但是,您将丧失链接提供的性能优势。

我理解在Java中,写一个链方法vs方法堆栈应该编译成相同的字节码。然而,由于这是一种脚本语言,这真的站得住脚吗?而且,如果是这样,是否值得为了这段代码的性能而牺牲代码的可读性呢?

关于我从哪里得到这篇文章的参考:http://help.arcgis.com/en/webapi/javascript/arcgis/jshelp/inside_graphics.html

编辑:经过一些性能测试,我发现方法是否链接并不重要。(一次一个更快,另一次更快)

这样的链接方法可以提高性能,但仅在您使用的API是为提供此功能而构建的有限场景中。我想到的第一个例子是jQuery。

调用$("#test")需要时间来返回引用#test的jquery对象。

当你链接一个方法时,它会重用那个对象。

看看我做的这个测试作为一个例子。

http://jsperf.com/chaining-demo