我有以下代码,它是一个具有两个函数和一个属性的对象文字。
我的问题是,当函数greetSomeone
被调用时,它的上下文不是人,而是一个事件(例如 jQuery 或 DOM 事件),因此上下文更改为被触发this.getName
但未找到的事件。
那么,我如何调用this.getName()
内部greetSomeone
来正确执行呢?
我试过getName.call(person)
了,但没有用。
var person = {
name: 'john',
greetSomeone: function(event) {
//i tried getName.call(person) but doesn't work
return 'hello i am ' + this.getName() //<---this doesn't work
},
getName: function() {
return this.name
}
};
console.log(person.greetSomeone()) // works here, but not in an event handler