Javascript 在angular中注入$window,有什么用?

Javascript 在angular中注入$window,有什么用?,javascript,angularjs,window,code-injection,Javascript,Angularjs,Window,Code Injection,带Angular的$window注入有什么用途 比如说, var myController = function ($scope, $window) { // window is still available here }; myController.$inject = ['$scope', '$window']; 主要用于中所述的可测试性目的 虽然窗口在JavaScript中全局可用,但它会导致 可测试性问题,因为它是一个全局变量。在我们 始终通过$window服务引用它,因此它可

带Angular的$window注入有什么用途

比如说,

var myController = function ($scope, $window) {

   // window is still available here
};
myController.$inject = ['$scope', '$window'];

主要用于中所述的可测试性目的

虽然窗口在JavaScript中全局可用,但它会导致 可测试性问题,因为它是一个全局变量。在我们 始终通过$window服务引用它,因此它可能是 覆盖、移除或模拟以进行测试


在可能的情况下,避免使用全局变量是众所周知的最佳实践。因此,Angular为您提供了一个有效的“Angular”方式选项,以将窗口对象作为服务放在代码中。对于测试来说,拥有这个选项是非常有用的