为什么实用模块&构造函数模式将其作为全局接受
Why does the Practical Module & Constructor patterns accept this as a global?
实用模块模式接受this
作为全局:
(function( global )
var Module = ...
...
...
global.Module = Module;
})( this );
这个决定背后的理性是什么?
实用构造函数也是如此。
您引用的代码在技术上等效于:
(function()
var Module = ...
...
...
this.Module = Module;
})();
如果在构造函数或方法之外按预期使用,则this
将引用全局对象(如window
)。通过使用名称global
而不是this
来引用它,代码可以更明确地表明这就是正在发生的事情。(您必须承认,"global
"比"this
"更清楚地表示全局对象!)
不知怎么的,我没有理解你的意思。这是指当前作用域/当前对象。如果你把它放在你的"全局"范围这个将是窗口元素(或任何全局对象)。
<script type="text/javascript">
var tmp = {
someVar: null,
init: function( someVar ){
this.someVar = someVar;
}
};
tmp.init( this );
window.console.log( tmp.someVar === window ); // true
</script>
现在tmp.someVar和窗口是同一对象
相关文章:
- javascript严格模式下oop函数的全局初始化
- j查询 UI 模式对话框在叠加单击时全局关闭
- 对角度模块使用单个全局变量是否是一种反模式
- 角度模块中的全局通信:事件总线或调解器模式/服务
- React Native 中全局对象的模式
- Javascript Module 模式.如何访问模块内的全局变量
- 这在全局范围内的严格模式下(在 ES2015 中)
- 全局的注册表模式 |验证
- 在JavaScript中全局替换数组模式中的字符串
- 以严格模式在未知环境中获取对全局对象的引用
- 为什么实用模块&构造函数模式将其作为全局接受
- 传递jQuery或不同全局的模块模式
- 在Backbone中保存对全局集合的引用的最佳模式
- 全局变量的模式
- UMD模式内的全局上下文
- ReferenceError:严格模式禁止在for循环中隐式地创建全局属性
- 如何消除全局变量——常见的模式
- 对于具有全局选项的模式,连续调用RegExp测试失败
- 使用全局模式修改器和前瞻性
- 严格模式下的全局对象访问