javascript – 将Window对象的属性设置为坏习惯?

前端之家收集整理的这篇文章主要介绍了javascript – 将Window对象的属性设置为坏习惯?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编写一个非常复杂的 JavaScript应用程序,它具有使用Prototype的 Class支持和模块模式实现的MVC架构.该应用程序使用AJAX和Observer模式.当DOM加载时,我创建我的控制器实例,传递一个视图,并从JSON数据中创建一些模型,并将其移除.

但是,我发现我必须将控制器实例作为Window对象的属性设置.声明它不使用var – 因为我有一个AJAX成功回调,刷新控制器拥有的视图对象,在代码中,我的好的小MVC世界不在范围内.

我调查了将视图对象作为参数传递给包含AJAX代码函数,但这样做非常混乱,会导致对MVC模式的一些可怕的违规,例如耦合模型和视图.很可怕

正在做的事情就像将我的控制器实例直接存储在窗口被认为是坏的形式?它有点像使用全局变量给我,但我看不到任何方法.

解决方法

窗口对象上设置属性等效于创建全局变量.也就是说,有时这样做是不可避免的,但是您应该尝试将其保持在最低限度,因为它最终会污染全局命名空间.

在你的情况下,创建一个属性并不那么糟糕.如果您要特别小心,您可以为需要全局访问的任何内容显式创建一个命名空间:

// In init:
var mynamespace = {};

. . .

// Once the controller is available:
var namespace = window.mynamespace;
namespace.controller = controller;
namespace.foo = bar; // Set other stuff here as well.

猜你在找的JavaScript相关文章