Можно ли получить несвязанную функцию из связанной функции в JavaScript?

Я ломаю голову над каррированием и другими методами с использованиемFunction.prototype.bind.
Кажется чрезвычайно полезным изменить область действия функции (т. е. это значение) в определенных ситуациях.

Однако похоже, что вы не можете изменить область действия с помощью bindпосле того, как вы это уже сделали:

function f = obj.method.bind(42); 
function g = obj.method.bind('Hi');

function f2 = f.bind('Hi'); // “this” is still 42

Возможно ли вообще получить исходную несвязанную функцию из связанной функции?

22
задан Dan Abramov 9 May 2012 в 20:12
поделиться