Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.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 console.log()在对象中的奇怪行为_Javascript_Node.js - Fatal编程技术网

Javascript console.log()在对象中的奇怪行为

Javascript console.log()在对象中的奇怪行为,javascript,node.js,Javascript,Node.js,输出:- {} {a:[函数:a],b:未定义} 首先声明foo变量,然后计算键b,通过console.log为我们提供全局对象:-它在节点中显示{},在浏览器中显示窗口 但是,当调用foo.a时,b显示未定义 我是否遗漏了一些概念?为什么不重新评估 谢谢您创建了一个foo对象,并为其指定了两个属性: 您可以使用文本函数{console.logthis}将a设置为函数 您将b设置为console.logthis的返回值。console.logthis立即执行,并注销该对象。该对象尚未被赋予其属性

输出:- {} {a:[函数:a],b:未定义}

首先声明foo变量,然后计算键b,通过console.log为我们提供全局对象:-它在节点中显示{},在浏览器中显示窗口

但是,当调用foo.a时,b显示未定义

我是否遗漏了一些概念?为什么不重新评估


谢谢

您创建了一个foo对象,并为其指定了两个属性:

您可以使用文本函数{console.logthis}将a设置为函数 您将b设置为console.logthis的返回值。console.logthis立即执行,并注销该对象。该对象尚未被赋予其属性,因此它将注销{}。console.log的返回值未定义,因此b被设置为未定义。
现在,您已经初始化了对象,其中a=某个函数,b=未定义。稍后,当您调用a时,它会注销foo对象,a=some函数,b=undefined。

我不确定您期望的是什么。console.logthis的返回值未定义。这就是为什么b总是未定义的。嗨@Xufox,我希望它像第一次一样返回{},而不是未定义。请参考我在编辑中添加的详细信息,抱歉遗漏了输出:嗨@Nicholas Tower,哦!我现在明白了!谢谢
var foo = {
a : function(){
    console.log(this)
},

b : console.log(this)
}

foo.a()