gpt4 book ai didi

javascript - 如何优化 Javascript 查找?

转载 作者:行者123 更新时间:2023-12-02 14:50:03 24 4
gpt4 key购买 nike

根据Javascript的主要实现,变量和函数的查找都是从原处开始,向上遍历,直到全局对象。

现在假设您正在构建更大的基于 OOP 的框架,并且需要在各处调用安全检查,那么这样调用这些东西似乎并不正确:“xapp.utils.isValidString(var)。相同适用于通常随处出现的常量、枚举和标志。

我不太确定这是否会对答案产生影响,但我们正在 Dojo 中完成所有工作,并且我们非常了解它的 lang.mixin 方法。

但是,其想法是通过使用构造函数或原型(prototype)将一组明显且最小的函数和对象混合到目标对象本地范围中。您认为这是合法的方式吗?

那么缓存和重用这些准备好的对象怎么样?您会选择哪种缓冲器?对我来说,它看起来很像一个环形缓冲区。

我还在学习 JS 优化,我很高兴听到你的想法!

以下是大师解释的一些有关范围管理的常见技巧,供您引用:http://googlecode.blogspot.com.es/2009/06/nicholas-c-zakas-speed-up-your.html

更新:我们只需要关注现代桌面和移动浏览器,将 IE 完全排除在外!此外,我们熟悉 Dojo 的构建链,支持每个平台的条件编译(如果这很重要)。

最佳答案

对于标识符解析,即直接引用,我建议您切换到严格语言(如果您还没有),也称为“严格模式”。 strict 语言是静态作用域的,这使得 JS 引擎能够静态绑定(bind)标识符,从而在程序执行过程中获得更好的性能(标识符在编译时已经绑定(bind))。

<小时/>

对于属性查找,如果您有长链,例如

foo.bar.baz.method1();
foo.bar.baz.method2();

通常的解决方案(不仅是为了性能,也是为了避免代码重复)是将最右边的对象存储到局部变量中:

var baz = foo.bar.baz;

baz.method1();
baz.method2();

关于javascript - 如何优化 Javascript 查找?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12943573/

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