我正在使用 javascript API,我看到了这句话:
因为 JavaScript 是一种脚本语言,所以每一行代码都会占用宝贵的处理器时间。提高处理器时间的一种方法是链接方法调用以减少代码行数。esri.Graphic 和 esri.symbol.* 等对象提供了返回对象本身的 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 中,编写链方法与方法堆栈应该编译成相同的字节码。然而,既然这是一种脚本语言,这真的站得住脚吗?此外,如果确实如此,是否值得牺牲代码的可读性来实现该部分代码的性能?
并作为参考我从哪里得到这个文本: http: //help.arcgis.com/en/webapi/javascript/arcgis/jshelp/inside_graphics.html
编辑:经过一些性能测试,我发现方法是否被链接并不重要。(一次更快,另一次更快)