John Doe
。原因是在javascript中,一个函数的语境,也就是 this
这个关键词引用的,依赖于函数是如何调用的,不是如何定义的。在第一个 console.log()
调用中, getFullname()
是作为 obj.prop
的函数被调用的。因此,这里的语境指向后者并且函数返回对象的 fullname
属性。相反,当 getFullname()
被指定为 test
的变量,那个语境指向全局对象( window
)。因为 test
相当于设置为全局对象的属性。因为这个原因,函数返回 window
的一个 fullname
属性,这在这个案例中是在代码片段中第一行设置的。
问题5: call()
和 apply()
修复上一个问题,让最后一个 console.log()
打印出 Aurelio De Rosa
。