首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解console.log(console.log(对象))

理解console.log(console.log(对象))
EN

Stack Overflow用户
提问于 2018-11-10 10:43:37
回答 2查看 101关注 0票数 1

我对编程和js很陌生,我正在努力学习javascript的关键。

代码语言:javascript
复制
var obj1 = {
    name: 'rawn',
    fn: function() {
        console.log(this);
    }
};
console.log(obj1.fn());

当我输出它时,我得到对象(如预期的那样)- {name: "rawn", fn: ƒ},在另一行上得到- undefined。所以我的问题是为什么和如何得到undefined

我的理解是,我们正在编写这一行- console.log(obj1.fn()); as,console.log(console.log(this)),那么javascript引擎如何将结果作为undefined (在执行上下文中被放置为未定义的内容)?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-10 10:49:54

console.log(obj1.fn())console.log(console.log(this))根本不是等价的,但是它们实际上有相同的结果,原因是相同的:内部函数没有return任何东西。这些函数的返回值是undefined。这就是外部console.log记录的内容。

票数 2
EN

Stack Overflow用户

发布于 2018-11-10 10:49:26

这是因为两个原因。首先,在console.log(this);中,this函数中的this上下文是对象本身。因此,它打印了obj1的内脏。

其次,在console.log(obj1.fn());中,您实际上是在调用什么都不返回的方法。相反,如果您说console.log(obj1.fn);,它将返回:

{ console.log(this);}

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53238138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档