gpt4 book ai didi

Javascript 链接方法和处理时间

转载 作者:行者123 更新时间:2023-11-29 19:58:12 26 4
gpt4 key购买 nike

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

Because JavaScript is a scripting language, every line of code takes up valuable processor time. One way to improve processor time is to chain method calls to reduce lines of code. Objects such as esri.Graphic and esri.symbol.* provide setter methods that return the object itself, allowing for chaining of methods.

Less efficient:

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

More efficient:

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

When chaining method calls, you need to determine a balance between efficiency and readability of your code. Your code might be more readable and maintainable if you avoid chaining; however, you will forfeit the performance benefit that chaining offers.

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

关于我从哪里得到这段文字的引用:http://help.arcgis.com/en/webapi/javascript/arcgis/jshelp/inside_graphics.html

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

最佳答案

像这样的链接方法可以提高性能,但只能在您使用的 API 被构建为提供此功能的有限情况下使用。第一个想到的例子是 jQuery。

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

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

以我做的这个测试为例。

http://jsperf.com/chaining-demo

关于Javascript 链接方法和处理时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15572718/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com