gpt4 book ai didi

javascript - 函数调用 - this == Window 而不是 undefined

转载 作者:行者123 更新时间:2023-11-29 21:23:19 24 4
gpt4 key购买 nike

好的伙计们。我有这个基本代码,它返回一个名为 Q 的 jQuery 式函数。

q=new function(){
var u,q;
q=function Q(slf){
console.log('slf ⇒',slf);
ex=q_ex.call(slf);
console.log('ex ⇒',ex);
};
return q;
function q_ex(){
console.log('this ⇒',this);
return (this!==u && this!==null);
};
};

如果我要调用 q();。最终的控制台显示将是:

slf     ⇒ undefined
this ⇒ Window {external: Object, chrome: Object, document: document, speechSynthesis: SpeechSynthesis, caches: CacheStorage…}
ex ⇒ true

现在你们中间精明的人会意识到我要求 thisundefined 而不是 Window!

我是不是遗漏了什么,或者 this 是否默认为 Window 如果它的值为 nullundefined?

最佳答案

我能够通过更改一些代码来使某些东西工作:

var q = (function() {
'use strict';

var u;

function q_ex() {
console.log('this ⇒',this);
return (this!==u && this!==null);
}

return function Q(slf) {
console.log('slf ⇒',slf);
var ex = q_ex.call(slf);
console.log('ex ⇒',ex);
}
})();

q({ foo: 'bar' });
q();

关于javascript - 函数调用 - this == Window 而不是 undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38108193/

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