self在javascript中不是一个保留字——那么在我的脚本中如何定义它呢?
我掌握了基本javascript语法的窍门,并且正在努力深入理解该语言。我正在查看elizabot.js库中self在javascript中不是一个保留字——那么在我的脚本中如何定义它呢?,javascript,Javascript,我掌握了基本javascript语法的窍门,并且正在努力深入理解该语言。我正在查看elizabot.js库中elizabot.js文件中的这行代码: var global=ElizaBot.prototype.global=self; 我认为这是将Elizabot对象的原型的全局属性设置为“self”。我是否正确理解该行的含义 Self在javascript中似乎不是一个很好的例子。但是如果我在Elizabot.js文件中搜索单词“self”,我就找不到了。javascript中self这个词
elizabot.js
文件中的这行代码:
var global=ElizaBot.prototype.global=self;
self
是窗口
对象的属性,该对象包含当前窗口
的值。由于窗口
对象的所有属性都可以作为全局变量访问,因此您可以只引用self
,它将包含对当前文档窗口的引用
因此,在您的代码中:
var global=ElizaBot.prototype.global=self;
正在将对当前窗口
对象的引用分配给ElizaBot.prototype.global
和变量global
有关window.self
的信息,请参阅,该窗口也可以通过self
访问
仅供参考,所有这些分配似乎都是多余的,因为当前窗口对象通常可以通过其他方式访问,不需要单独存储。在浏览器(非通用javascript)中,
self
是窗口
对象的属性,其中包含当前窗口
的值。由于窗口
对象的所有属性都可以作为全局变量访问,因此您可以只引用self
,它将包含对当前文档窗口的引用
因此,在您的代码中:
var global=ElizaBot.prototype.global=self;
正在将对当前窗口
对象的引用分配给ElizaBot.prototype.global
和变量global
有关window.self
的信息,请参阅,该窗口也可以通过self
访问
仅供参考,所有这些分配似乎都是多余的,因为当前窗口对象通常可以通过其他方式访问,不需要单独存储。在浏览器中,
self
指的是全局窗口
对象
ElizaBot是一个函数,它为ElizaBot创建的所有实例(通过prototype)将其全局属性设置为window对象
在浏览器中,
self
指的是全局窗口
对象
ElizaBot是一个函数,它为ElizaBot创建的所有实例(通过prototype)将其全局属性设置为window对象
看看这个,我刚刚打开控制台,键入“self”,它返回了窗口。我使用的是Chrome,所以我不确定这是否是标准的,但是是的!显然它是被定义的。
self
指的是window.self
:。下面是关于window
的文档:当window不在node.js、webwrokers等中时,self通常是唯一的全局句柄。@dandavisself
在nodejs中未定义。nodejs使用global
作为全局名称空间对象检查这个我刚刚打开控制台并键入“self”,它返回了窗口。我使用的是Chrome,所以我不确定这是否是标准的,但是是的!显然它是被定义的。self
指的是window.self
:。下面是关于window
的文档:当window不在node.js、webwrokers等中时,self通常是唯一的全局句柄。@dandavisself
在nodejs中未定义。nodejs对全局名称空间对象使用global
,显然,让我惊讶的是,你是对的(至少在Chromium 28/Ubuntu12.10中是这样)。@cbayram并且它还将var global的值设置为eliza函数的全局属性,对吗?在这一行代码中有两个赋值。@abe3 yesvar global
也被设置为self/window/ElizaBot.prototype.global对象,所有这些都是对同一个对象的引用。显然,让我惊讶的是,你是对的(至少在Chromium 28/Ubuntu12.10中)@cbayram,它还将var global的值设置为eliza函数的全局属性,对吗?在这一行代码中有两个赋值。@abe3 yesvar global
也被设置为self/window/ElizaBot.prototype.global对象,所有这些都是对同一对象的引用。同意,不理解对带有引用的完整答案的否决票。赞成票。同意,我不理解反对票,因为它会给出一个完整的答案。向上投票。