Javascript 什么是';这";是什么意思?这些代码之间有什么区别?
代码1:Javascript 什么是';这";是什么意思?这些代码之间有什么区别?,javascript,Javascript,代码1: var name=“窗口”; 变量对象={ 名称:“我的对象”, getNameFunc:function(){ 返回函数(){ 返回此.name; }; } }; 警报(object.getNameFunc());提示“此”: 此指向当前上下文的对象(而不是函数) 因此,这里的上下文非常重要 所以 在code1-中,此位于匿名函数内部,因此它位于全局上下文中,因此在这里,它指向窗口对象。 即 在这里它将打
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
。谢谢您的回复