在函数中包含角度控制器定义控制器是错误的吗?

use*_*131 5 javascript angularjs

我正在查看一些代码,我看到它的编写如下所示.这对我来说没有意义.这是错的吗?为什么这样写?此外,不应该use strict;在代码之外的最顶端?

(function() {
  'use strict';
  angular.module('itemList', [])
    .component('itemList', {
      templateUrl: 'item-list/item-list.component.html',
      controller: ['Item', ItemController]
  });

  function ItemController(Item) {
    //code
  }
}());
Run Code Online (Sandbox Code Playgroud)

cha*_*tfl 5

它被包装在IIFE中的原因是保持"use strict"包含在其中的范围内的所有声明,如函数和变量,而不是在全局命名空间中设置

如果"use strict"设置为global,则会影响我不遵守的其他无关代码,从而导致意外错误被抛出

在...中定义控制器是错误的吗?

不,这是一种最佳做法