[英]Understanding console.log(console.log(object))
我是编程和js的新手,我正在努力学习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
(在执行上下文中未定义的内容)?
console.log(obj1.fn())
和console.log(console.log(this))
根本不相同,但它们实际上具有相同的结果,原因相同:内部函数不return
任何内容 。 这些函数的返回值undefined
。 外部console.log
日志是什么。
这是因为两个原因。 首先,在console.log(this);
的上下文中this
内部fn
功能是对象本身。 因此它打印出obj1
的内脏。
其次,在console.log(obj1.fn());
,你实际上是调用什么都不返回的方法。 相反,如果你说console.log(obj1.fn);
它将返回:
ƒ(){console.log(this); }
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.