0

我有以下代码,它是一个具有两个函数和一个属性的对象文字。

我的问题是,当函数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

4

0 回答 0