Là người mới bắt đầu, tôi đã không thu thập được nhiều khía cạnh liên kết với câu trả lời này, nằm rải rác trên các nhận xét và các câu trả lời khác. Vì vậy, tôi sẽ cố gắng để củng cố họ dưới đây:
Thứ nhất, ở dạng mảnh nêu mã, lập luận gạch được sử dụng như sau: -
$(this).val('').attr('id', function(_, id) { return id + i });
Từ các tài liệu jQuery cho attr
chức năng here, có một dạng quá tải là attr
là .attr(attributeName, function)
. Các function
theo hình thức này được mô tả như
Type: Chức năng (index Integer, String attr)
Do đó, nó hy vọng hai tham số. Tuy nhiên, trong mã của chúng tôi, chúng tôi chỉ cần id
, đây là thông số thứ hai.
Bây giờ, vì cách JS xử lý đối số chức năng, chúng tôi không thể viết nó như function(id)
, như JS sẽ lập bản đồ id
-index
(đối số đầu tiên dự kiến cho function
). Do đó, hàm chúng ta viết cần có hai tham số.
Ở đây, một quy ước tiêu chuẩn được phát hành. Như đã đề cập here,
Ký tự gạch dưới (_) được sử dụng như một cách tiêu chuẩn để biểu thị đối số hàm không sử dụng.
Tuy nhiên, đây chỉ là quy ước chứ không phải quy tắc. Chúng tôi cũng có thể đặt tên cho đối số không được sử dụng là index
hoặc unused
. Tức là,
$(this).val('').attr('id', function(unused, id) { return id + i });
sẽ là tương đương hợp lệ.
Do đó, việc sử dụng _ để thay thế cho đối số không được sử dụng có thể được sử dụng cho bất kỳ hàm jQuery nào khác có dạng ghi đè tương tự. Ví dụ: trong câu trả lời this, chúng tôi có thể thấy việc sử dụng dấu gạch dưới trong cuộc gọi đến $.text()
. Chỉ cần xác nhận, $.text()
có biểu mẫu ghi đè chấp nhận hàm có hai đối số, như được hiển thị here.
Cảm ơn bạn Ivan. Nhưng bạn có biết tại sao nó có thể được sử dụng mà không bị tuyên bố? Tôi đánh giá cao bất kỳ tài liệu tham khảo tôi có thể đọc thêm về điều này –
Trong ví dụ bạn cung cấp, '_' đang được khai báo là một đối số trong hàm. Anh ta không sử dụng nó chút nào. – Ivan
Ah! Hiểu rồi. Thanx –