Đó là một chút suy đoán, nhưng đây là cú đánh của tôi vào nó.
jQuery nắm bắt đầy đủ bản chất chức năng của javascript. Đó là những gì làm cho nó trở nên tuyệt vời, nhưng nó có thể khiến nhiều nhà phát triển gãi đầu khi họ đến từ ngôn ngữ OO thuần túy hơn như java. Nó dường như phá vỡ tất cả các quy ước và thực hành tốt.
Langage chức năng có xu hướng đặt sự nhấn mạnh vào một cú pháp khai báo. Nó có xu hướng đọc như tuyên bố của một thực tế chứ không phải như các lệnh. Thí dụ
var eligible = customers.where(c => c.age > 30);
có thể được đọc là "khách hàng đủ điều kiện là khách hàng có tuổi trên 30". Theo cách hiểu, ngôn ngữ bắt buộc đọc như một chuỗi lệnh
for (customer in customers)
if (customer.age > 30)
eligible.add(customer)
Điều đó có thể được đọc là "Kiểm tra từng khách hàng và nếu tuổi của họ trên 30, hãy thêm họ vào bộ sưu tập đủ điều kiện"
Thêm aa set
và một get
hoạt động sẽ làm cho jQuery cảm thấy như một thư viện bắt buộc. Bạn có thể hiểu cách đọc các tuyên bố sau
// The element tag have an html of <p>hello</p>
$("#element").html("<p>hello</p>");
// content represent the html of the element tag
var content = $("#element").html();
//Imperative style
// Set the element tag to an inner html of <p>hello</p>
$("#element").setHtml("<p>hello</p>");
//Get the html of #element, and put it in the content variable
var content = $("#element").getHtml();
Bằng cách giữ các động từ hành động ra khỏi api jQuery, họ đã làm cho nó cảm thấy giống như một API khai báo. Nó mang lại một cảm giác nhất quán, chức năng cho thư viện. Đó là lý do tại sao tôi nghĩ rằng họ quá tải các từ khóa.