繁体   English   中英

了解console.log(console.log(object))

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM