首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编程实践-使用助手方法隐藏对象

编程实践-使用助手方法隐藏对象
EN

Stack Overflow用户
提问于 2016-05-02 17:32:25
回答 1查看 58关注 0票数 1

我在阅读闭包库的代码段时,看到了下面的代码片段:

代码语言:javascript
复制
/**
 * Gets the document object being used by the dom library.
 * @return {!Document} Document object.
 */
goog.dom.getDocument = function() {
  return document;
};

为什么我们在getter方法中包装了文档引用?文档不是一个全局对象吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-03 16:32:56

我看到了两个逻辑原因,都涉及闭包编译器:

  1. 类型检查--当调用此函数时,闭包编译器将知道返回类型为Document,并且它从不为null。Google闭包开发人员可能已经将其硬编码到闭包编译器中,但通过显式显示,他们避免为存在于全局对象上的属性向闭包编译器添加特例。
  2. 小型化--当该函数通过ADVANCED_OPTIMIZATIONS时,goog.dom.getDocument可以缩小为类似a.b.c的东西。闭包编译器不能重命名document,因为它无法控制全局对象上的变量名,但它当然可以重命名引用document的函数,为您提供更小的源代码。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36988216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档