我是编程和js的新手,我正在尝试学习javascript的关键。
var obj1 = {
name: 'rawn',
fn: function() {
console.log(this);
}
};
console.log(obj1.fn());
当我输出时,我得到对象(如预期)-
{name: "rawn", fn: ƒ}
,在另一行我得到-undefined
。所以我的问题是为什么以及如何获得undefined
?我的理解是,我们正在编写此行-
console.log(obj1.fn());
为,console.log(console.log(this))
,那么javascript引擎如何将结果作为undefined
给出(在执行上下文中未定义的内容)? 最佳答案
console.log(obj1.fn())
和console.log(console.log(this))
根本不是等效的,但是由于相同的原因,它们实际上具有相同的结果:内部函数什么都不return
。这些函数的返回值为undefined
。这是外部console.log
记录的内容。