gpt4 book ai didi

javascript - 这在 AngularJS 中

转载 作者:行者123 更新时间:2023-12-02 15:46:13 25 4
gpt4 key购买 nike

考虑 Javascript 中的代码片段,

        var objt = {

fn : function(three, four){
four(); // window as (this === window)
}
}


objt.fn(3, function(){
alert(this); // window as (this === window)

});

上面不是构造函数。在函数内部,this 的值取决于函数的调用方式。函数

            function(){
alert(this);
}

作为参数传递,因此未链接到对象这个没有问题。

现在考虑 AngularJS 中有关模块和 Controller 的代码片段,

myModule.controller('MainCtrl', function(x1, x2) {
var main = this;

alert(this === window); // alert false, why and what is this here?

});

最佳答案

通常 this 是一个棘手的问题,并且内部取决于您所在的范围。如果您在全局范围内声明函数,this 将等于 window 因为 window 是全局范围。

但是,由于您位于 Angular 的 Controller 范围内,this 不再引用 window 对象,因此它成为您的 Controller 对象。

关于javascript - 这在 AngularJS 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32177420/

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