Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.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,代码1:  var name=“窗口”;   变量对象={     名称:“我的对象”,     getNameFunc:function(){       返回函数(){         返回此.name;       };     }   };   警报(object.getNameFunc());提示“此”: 此指向当前上下文的对象(而不是函数) 因此,这里的上下文非常重要 所以 在code1-中,此位于匿名函数内部,因此它位于全局上下文中,因此在这里,它指向窗口对象。 即 在这里它将打

代码1:

 var name=“窗口”;
  变量对象={
    名称:“我的对象”,
    getNameFunc:function(){
      返回函数(){
        返回此.name;
      };
    }
  };
  警报(object.getNameFunc());
提示“此”:
指向当前上下文的对象(而不是函数)

因此,这里的上下文非常重要

所以 在code1-
中,此
位于匿名函数内部,因此它位于全局上下文中,因此在这里,它指向
窗口
对象。 即 在这里它将打印:
window.name
=
窗口

在code2-
中,该
位于已创建的
对象的实例函数中,因此它位于
对象
上下文中,因此在这里,它指向
对象

i、 e。 在这里它将打印:
object.name
=
My object


希望有帮助:)谢谢:)

这可能是关于“关闭”的问题,您可能希望看到以下内容:

在代码1中,
位于设备下,因此它直接指向设备的名称


还有
var name
这里是全局var。因此,您将得到
窗口

大量的答案,阐明javascript作用域是如何工作的!但我确实对您的代码有一个问题:

为什么函数中有两个返回语句

函数中的语句,即

return function(){
    return this.name;
}
是错误的,因为它首先从您的函数返回到当前作用域,即窗口/文档。因此,实际上为当前作用域调用内部语句,从而返回“窗口”

相反,你只要打个电话就行了

return this.name;

如果没有包装函数,现在它将返回“对象”因为它正在对象范围内返回!

我的答案有用吗?或者你需要更多信息吗???非常感谢,它确实有用。然后你可以接受并投票…你知道,有一个非常棒的工具叫做文档。哦,还有另一个:GOOGLE.COM。甚至有很多博客、网站、youtube视频。最后一个地方是w在这里,当所有事情都让你失望时,你应该问一个问题。只是说。另外,许多此类问题已经被问过很多次了。那么,
function(){return this.name}
这里是在全局上下文中,
这个
指向窗口,
变量名
相当于
窗口。名称
?是的,因为声明不在任何函数内,这意味着它是在全局范围内声明的。所有全局变量都属于窗口对象,所以这里的
窗口.名称
指向
变量name
。谢谢您的回复