Tôi đang tạo hàm lambda thực hiện hàm thứ hai với tham số cụ thể. Mã này hoạt động trong Firefox nhưng không có trong Chrome, trình kiểm tra của nó hiển thị lỗi lạ, Uncaught TypeError: Illegal invocation
. Có gì sai mã của tôi?Uncaught TypeError: Gọi bất hợp pháp trong javascript
var make = function(callback,params){
callback(params);
}
make(console.log,'it will be accepted!');
nếu tôi thay thế 'console.log' bằng' console.log.bind (console) ', nó hoạt động trong Chrome 12. –
@ DanD — chỉ ra rằng * log * dự kiến được gọi là phương thức * console *, tức là từ khóa * this * của nó phải tham chiếu đến đối tượng * console *. – RobG
Hàm 'make' của bạn tương đương với' callback.call (null, params) ' –