Tôi nhận được đầu của tôi quấn về cà ri và các kỹ thuật khác sử dụng Function.prototype.bind
.
Có vẻ như rất hữu ích khi thay đổi phạm vi chức năng (ví dụ: this
giá trị) trong một số trường hợp nhất định.Tôi có thể nhận được hàm không liên kết từ một hàm bị ràng buộc trong JavaScript không?
Tuy nhiên it looks like you can't change the scope with bind
một khi bạn đã làm như vậy:
function f = obj.method.bind(42);
function g = obj.method.bind('Hi');
function f2 = f.bind('Hi'); // “this” is still 42
Có thể lấy lại chức năng không ràng buộc ban đầu từ một hàm ràng buộc ở tất cả?
bạn đã thử chưa? –
@Martin: Tôi đang tạo ra một fiddle ngay bây giờ. Nó có vẻ như là một câu hỏi rất đơn giản cho một người biết câu trả lời, vì thế tại sao tôi đăng một câu hỏi mà không cần nghiên cứu trước. –
@Martin: Tôi chỉ [kiểm tra các giả định của tôi] (http://jsfiddle.net/dXq2E/) và có vẻ như tôi không thể thay đổi phạm vi bằng 'bind' hai lần. Vì vậy, nó có thể ở tất cả? Có một loại 'unbind' không? –