gpt4 book ai didi

Javascript: "this"在这种情况下有用还是必要的?

转载 作者:行者123 更新时间:2023-11-28 07:25:49 25 4
gpt4 key购买 nike

查看一些遗留代码并看到它。函数体是用纯 Javascript 完成的,没有使用任何第三方库。

有人能解释一下 (function() { })(this) 中“this”的用法吗? ?

完整代码:

(function() {
var root = this;
var SOMEVAR;
SOMEVAR = root.SOMEVAR = {};

SOMEVAR.windowOffset = 0;
SOMEVAR.defaultBase = 195;

SOMEVAR.resizeIFrame = function(){
// some codes
};

SOMEVAR.resetIFrameSize = function(height) {
// some codes
}

window.SOMEVAR = SOMEVAR;
})(this);

在我问这个问题之前,我实际上阅读了所有与“this”相关的用法。我只是找不到这种用法适合我读过的内容。不知何故,我认为这里的“this”甚至不是必要的,因为所有代码想要的只是创建“SOMEVAR”并将其绑定(bind)到“window”。我说得对吗?

谢谢

最佳答案

这是一个有点奇怪的 Immediately-Invoked Function Expression (IIFE) 的例子。第一部分:

(function(){})

简单地定义一个函数(外括号是不必要的)。然后调用此函数,并将 this 作为参数传递。通常,人们会实际声明一个参数,然后对函数内的参数执行一些操作:

(function(context) {
// do something to or with context
})(this);

this 实际引用的对象取决于此代码的执行位置以及严格模式是否有效。请参阅the docs for this了解更多信息。

关于Javascript: "this"在这种情况下有用还是必要的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29665778/

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