2017-08-27 54 views
1

如何在JavaScript中解构对象时绑定方法?如何在JavaScript中解构对象时绑定方法?

const person = { 
    getName: function() { 
    console.log(this); 
    } 
}; 

var a = person.getName; 
var b = person.getName.bind(person); 
var {getName: c} = person; 

person.getName(); //=> {getName: [Function]} 
a();    //=> window or global 
b();    //=> {getName: [Function]} 
c();    //=> window or global 

我想c登录控制台的“父”对象{getName: [Function]}

有没有什么办法可以在解构一个对象时解绑一个对象解构一行?

+2

在调用时给出上下文。 'var {getName:c} = person;'与'var c = person.getName;'相同。如果你想给'c'一个你选择的上下文,使用'.call','.apply'或'.bind' –

+0

我想不出任何东西,但'var {...} = autobindAllMethods(person)'with辅助功能 – Bergi

回答

2

不,没有办法。与对象分离的函数失去原始上下文。在JavaScript中进行析构没有语法,可以在运行时对提取的值执行某些操作。

相关问题