Are requirejsVà requirecác cùng?
Đối với RequestJS 2.1.15 requirevà requirejstrong không gian toàn cầu thực sự là "hoàn toàn giống nhau", có thể được chứng minh bằng thử nghiệm này, bạn có thể thực hiện trong bảng điều khiển:
> require === requirejs
true
Việc kiểm tra trả về truecho bạn biết chúng là cùng một đối tượng chức năng . Chúng không phải là hai hàm xảy ra có mã giống nhau hoặc giống hệt nhau. Chúng là cùng một đối tượng, thời kỳ.
Lưu ý, tuy nhiên, khi bạn thực thi define(['require'], function (require) {Hàm requiređược truyền vào thường khác với toàn cục require.
Bạn nên sử dụng requirehay requirejs?
Nó phụ thuộc. RequestJS là một trình tải AMD nhưng nó không phải là trình tải duy nhất trong thị trấn. Nếu bạn muốn viết mã phù hợp 100% với thông số AMD để ai đó sử dụng mã của bạn có thể sử dụng bất kỳ trình tải nào họ muốn mà không cần phải sửa đổi mã của bạn, thì bạn nên sử dụng requireở cấp độ toàn cầu, vì requirejsnó dành riêng cho RequestJS. Một trình nạp AMD khác sẽ không xác định nó. Thông số AMD xác định requirenhưng không requirejs.
Nếu bạn đang tải thứ gì đó khác xác định toàn cục requirethì bạn phải sử dụng requirejsở cấp toàn cầu để tránh xung đột.
Bên trong một mô-đun, luôn sử dụng defineđể lấy tham chiếu đến require. Bạn nên làm điều này bất kể có xung đột trong không gian toàn cầu hay không.