在严格模式下使用此功能的原因不合法

时间:2017-09-27 14:14:39

标签: javascript jshint strict-mode

我有以下代码:

(function () {
    'use strict';

    angular.module('gestion').controller(
        'controller',
        controller);

    controller.$inject = ['$mdDialog',
            'locals'];

    function controller($mdDialog, locals) {
        var pm = this;

        pm.cancel = function () {
            $mdDialog.hide();
        };

        pm.validate = function () {
            $mdDialog.hide();
            locals.parentScope.remove();
        };
    }
})();

问题在于,当我运行jshint时,我收到此警告消息:

  

如果使用函数调用执行严格模式函数,则为   '这'价值将是未定义的。

我该如何解决这个问题?

编辑:

我不知道为什么这个问题被标记为重复。

编辑2:

当我使用Controller而不是controller时,我解决了这个问题,这必须处理Constructor Invocation Pattern,因为当你使用时,你应该将函数名的第一个字符大写需要通过" new"来构建对象。关键字,var pm = this在这种情况下执行。

0 个答案:

没有答案