声明具有相同名称的局部变量时,函数变得不确定

用户名

我已经在文件中声明了一个函数,以使其成为全局函数:

function speakService() {

    var speakService = {};

    var speak = function(word) {
        console.log(word);
    };

    speakService.speak = speak;

    return speakService;
}

使用AngularJS,我想将此服务添加为依赖项:

angular
    .module('login', ['ngRoute'])
    .factory('speakService', [function() {
        var speakService = speakService();
        return speakService;
    }]);

但是,口译员一上来就行了:

var speakService = speakService();

talkService()函数未定义。如果我像这样将speakService变量更改为speakerSvc,则可以正常工作:

var speakSvc = speakService();

可以在声明具有相同名称的局部变量时解释为什么我的全局函数未定义吗?

问候!

佩佩特罗夫

变量似乎未定义的原因是起吊当您编写类似的内容时,var x = 3将的定义x提升到当前作用域的顶部(在这种情况下可以使用,因为您正在使用var)。当您点击该特定行时,作业本身就会发生。

因此,在您的特定情况下,当您输入该变量的作用域时,var speakService首先要对其进行定义,这会将函数隐藏speakService在其余作用域中。然后尝试执行该行speakService = speakService(),由于speakService这只是一个未初始化的变量,因此无法定义。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用多个具有相同名称的局部变量时的垃圾回收

C#中存在具有相同名称的局部变量时,如何在函数中更改全局变量的值

Bash:使用具有相同名称的局部变量隐藏全局变量

具有相同名称的局部变量和全局变量及其工作方式?

如何将值从locals()分配给具有相同名称的局部变量?

在Ruby中具有相同名称的局部变量和方法?

如果内部函数已经具有相同名称的变量,则如何从内部函数访问封闭函数中的非局部变量

在我的函数中变量变得不确定

如何在C中访问具有相同名称的局部变量和全局变量

如何从部分内部而不是使用具有相同名称的局部变量访问:locals哈希?

在函数中已经存在的宏中声明具有相同名称的变量时,为什么没有收到警告?

在没有初始化变量的情况下声明变量会使其变得不确定吗?

迭代json时变得不确定

Python:当变量和类具有相同的名称时:UnboundLocalError:分配前已引用局部变量“ foo”

具有相同名称的两个HDD分区导致目录不确定

当已经存在相同名称的全局变量和局部变量时,如何访问变量(C ++)?

嵌套函数中具有相同名称的变量

在函数中分配了新值后,全局变量变得不确定

数组变得不确定

Angular 6-将数据传递到类变量时变得不确定

局部变量和实例变量具有相同的名称

如何消除具有相同名称的局部静态变量和全局变量的歧义

在调用函数时变得不确定,但并非在每次调用时都会发生

迅速从具有相同名称的局部函数调用全局函数

附加元素在传递时变得不确定

在角度访问此对象时变得不确定

使用$(selector).html()时变得不确定

当我尝试访问参数时变得不确定

尝试读取vuex状态时变得不确定

TOP 榜单

热门标签

归档