cuốn sách gpt4 ai đã làm

javascript - Viết tắt của Function.prototype.call.call?

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-02 21:53:22 27 4
mua khóa gpt4 Nike

Cách gọi một hàm

Hãy xem xét chức năng đơn giản này:

hàm của tôi(p) { console.log(p) }

Tôi có thể gọi nó như thế này:

của tôi("Xin chào");

Cũng như thế này:

my.call(cái này, "Xin chào");

Hơn nữa, có thể:

Function.prototype.call.call(my, this, "Xin chào");

Viết tắt của chế độ chức năng

Tôi quan tâm đến lựa chọn cuối cùng - lựa chọn thiết thực nhất, nhưng vì nó quá dài nên tôi sẽ cố gắng viết tắt nó:

var call = Function.prototype.call.call;

Để gọi tôi thế này:

call(my, this, "Xin chào");

Nhưng tôi gặp lỗi loại này:

TypeError: Function.prototype.call được gọi không tương thích không xác định

Có ai biết, chuyện gì đang xảy ra ở đây vậy?

câu trả lời hay nhất

khi bạn nói

var call = Function.prototype.call.call;

最后一个gọi Nó mất bối cảnh thực tế của nó. Bạn cần phải làm rõ gọi thuộc về Hàm.prototype.call.

Bạn có thể làm điều này bằng cách tạo một hàm mới thực sự liên kết nó như thế này

var call = Function.prototype.call.call.bind(Function.prototype.call);
call(my, this, "Xin chào");
//Xin chào

ràng buộc Hàm trả về một hàm mới mà khi được gọi sẽ thay đổi ngữ cảnh (cái này) được đặt thành Hàm.prototype.call.

Giới thiệu về javascript - viết tắt của Function.prototype.call.call? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/30889321/

27 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress