根据 Javascript 的主要实现,对变量和函数的查找从原点开始并向上遍历直到全局对象。
现在假设您正在构建更大的基于 OOP 的框架,并且您需要在所有地方调用安全检查,那么以这种方式调用这些东西似乎并不正确:“xapp.utils.isValidString(var)。这同样适用于常量,枚举和标志,通常在任何地方发生。
我不太确定这是否会对答案产生影响,但我们在 Dojo 中做了所有事情,并且我们非常了解它的 lang.mixin 方法。
然而,这个想法是通过使用构造函数或原型将一组明显且最小的函数和对象混合到目标对象的本地范围中。你认为这是一种合法的方式吗?
那么缓存和重用那些准备好的对象呢?您会选择哪种缓冲器?对我来说,它看起来很像一个环形缓冲区。
我还在学习 JS 优化,我会很高兴你的想法!
供您参考,这里有一些大师解释的范围管理的常见提示:http: //googlecode.blogspot.com.es/2009/06/nicholas-c-zakas-speed-up-your.html
更新:我们只需要关注现代桌面和移动浏览器,完全不考虑 IE!此外,我们熟悉 Dojo 的构建链,支持每个平台的条件编译(如果这很重要)。