gpt4 book ai didi

javascript - 自执行代码中的"this"

转载 作者:行者123 更新时间:2023-11-28 19:20:51 26 4
gpt4 key购买 nike

为什么这里的“this”对于对象的成员函数内部的自执行代码(窗口/全局作用域)是不同的?

foo = "Window_foo"
var myobj = {
foo: 'Object_bar',
func: function(){
var self = this;
console.log("outer this.foo " + this.foo);
console.log("outer self.foo " + self.foo);
(function(){
console.log("inner this.foo " + this.foo);
console.log("inner self.foo " + self.foo);
}());
}
}
myobj.func();

我得到以下输出:

outer this.foo Object_bar
outer self.foo Object_bar
inner this.foo Window_foo
inner self.foo Object_bar

func是myObj对象的成员函数。其中的“this”必须是myObj对象。那么它内部的自执行函数如何将“this”作为窗口对象呢?

最佳答案

自执行函数将窗口对象作为其 this 的值,即使它位于对象的方法内。

关于javascript - 自执行代码中的"this",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28945834/

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