Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 什么是;这";在这个模块模式中是什么意思_Javascript - Fatal编程技术网

Javascript 什么是;这";在这个模块模式中是什么意思

Javascript 什么是;这";在这个模块模式中是什么意思,javascript,Javascript,在执行abc.self时,我得到了未定义的这个恰好是在这个上下文中。这个指的是当前对象。在您的条件下,此将成为窗口,当您试图获取值abc.self时,您需要这样使用: var abc=(function(){ var self=this; return { self:self } })(); 现在,只有您可以获得该值: this.self = this; 但是要注意的是,您不能像上面的代码那样使用abc作为构造

在执行
abc.self
时,我得到了
未定义的
这个
恰好是在这个上下文中。

这个
指的是当前对象。在您的条件下,
将成为
窗口
,当您试图获取值
abc.self
时,您需要这样使用:

var abc=(function(){

     var self=this;

     return {
        self:self
     }             


})();
现在,只有您可以获得该值:

this.self = this;

但是要注意的是,您不能像上面的代码那样使用abc作为构造函数,因为您使用的是闭包。

在“根范围”
中,此
窗口

对我来说

console.log(abc.self);

为了便于在中进行解释,可以简化您所拥有的内容

Window {top: Window, window: Window, ...}
表达式(在第一组括号中)定义了一个函数。然后在没有上下文的情况下调用此函数(this
)。这种构造称为。由于不传递上下文,因此行为取决于是否在中调用它:

  • 在非严格模式下,您将拥有全局对象(
    window
    在浏览器中,
    global
    在节点中)

  • 在严格模式下,函数调用缺少的上下文不会被替换,而是
    未定义

当你的
未定义时,我想你已经加入了。您可能有
“使用严格”位于文件开头或封闭函数中

例如,如果您想传递一个上下文,您可能已经这样做了

(function(){ console.log(this) })();

abc.self
对我来说效果很好,
这是全局范围,因为当我执行
abc.self
时,生命没有特殊的范围。我得到了
窗口
对象。是的,我处于严格模式。但我无法理解状态。“在严格模式下,函数调用缺少的上下文不会被替换。”
(function(){ console.log(this) })();
(function(){ console.log(this) }).call(someobject);