gpt4 book ai didi

javascript - 这个 Angular JS 代码片段是如何工作的?

转载 作者:搜寻专家 更新时间:2023-11-01 04:51:42 24 4
gpt4 key购买 nike

为什么以下代码片段在 Angular JS 中有效?

var app = angular.module('store',[]); 



(function(){
app.controller('StoreController',function(){
this.blabla = student;
});
})();

var student =
{
name:"Abc Def",
rollNumber:12,
isBrilliant: true,
isMale:false,
isFemale: false,
istest:true
};

即使 student 出现在使用它的函数之后并且 student 没有被提升,为什么上面的函数仍然有效?

但与上面的例子相比,这个:

(function(){
console.log("Name is :"+student);
})();

var student = {
name:"xyz"
};

student 显示为 undefined 意味着它没有被提升。

最佳答案

.controller 注册一个 Controller 函数,但不会立即执行它 - 它将它排入队列以供稍后阶段使用。然后,student 变量被分配一个对象。

但是,该 Controller 函数是 student 变量的闭包 - 换句话说,它可以在运行时访问它。 Read more about closures .因此,当它最终执行时,定义了 student 变量。

相比之下,第二个示例的console.log,无论是否包含在立即调用的函数表达式中,都在之前执行student 变量被赋值,因此它是 undefined

关于javascript - 这个 Angular JS 代码片段是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32622656/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com