对象字面量内的箭头函数

Ami*_*aie 5 javascript this arrow-functions

我有这个对象文字

let p = {
    name : 'Amir',
    say: () => {
        console.log(this.name)
        console.log(this)
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望 say 函数可以使用这个

p.say();
Run Code Online (Sandbox Code Playgroud)

但箭头函数显然将窗口对象作为'this'. 我知道我可以使用常规函数'say'代替箭头,它会正常工作。

但是我只想更改对 say 函数的调用以使其工作,但绑定不起作用。我的意思是像p.say.bind(p)()p.say.call(p)不会按预期工作。是否可以仅更改对函数的调用而不是对 say 函数的调用?

归档时间:

查看次数:

2626 次

最近记录:

7 年,9 月 前