Một trong những lỗi phổ biến nhất của tôi là tôi không bao giờ có thể nhớ liệu một cái gì đó là một phương pháp hay một tài sản, vì vậy tôi liên tục thêm hoặc loại bỏ dấu ngoặc đơn.Tại sao java/javascript/python buộc sử dụng() sau tên phương thức, ngay cả khi nó không có đối số?
Vì vậy, tôi đã tự hỏi nếu có logic tốt đằng sau việc tạo sự khác biệt giữa việc gọi các thuộc tính và phương thức của đối tượng một cách rõ ràng.
Rõ ràng, nó cho phép bạn có các thuộc tính và phương thức chia sẻ cùng một tên, nhưng tôi không nghĩ rằng nó xuất hiện nhiều.
Lợi ích lớn duy nhất tôi có thể đưa ra là dễ đọc. Đôi khi bạn có thể muốn biết liệu một cái gì đó là một phương pháp hay một tài sản trong khi bạn đang nhìn vào mã, nhưng tôi gặp khó khăn khi đưa ra các ví dụ cụ thể khi điều đó thực sự hữu ích. Nhưng tôi là một n00b, nên có lẽ tôi chưa gặp phải tình huống như vậy. Tôi đánh giá cao các ví dụ về tình huống như vậy.
Ngoài ra, có các ngôn ngữ khác mà sự khác biệt không rõ ràng không?
Dù sao, nếu bạn có thể trả lời, nó sẽ giúp tôi bớt khó chịu mỗi lần tôi phạm sai lầm này^- ^.
CẬP NHẬT: Cảm ơn tất cả mọi người về câu trả lời tuyệt vời cho đến nay! Tôi chỉ có giá trị của một tuần của js, và 1 ngày của python, vì vậy tôi không có ý tưởng bạn có thể tham khảo các chức năng mà không cần gọi chúng. Thật tuyệt vời. Tôi có một chút kinh nghiệm với java, vì vậy đó là nơi tôi chủ yếu đến từ ... bất cứ ai có thể đưa ra một đối số hấp dẫn không kém cho rằng đó là trường hợp trong java, nơi bạn không thể tham chiếu các chức năng? Bên cạnh đó là một ngôn ngữ rất rõ ràng, với tất cả những lợi ích đòi hỏi :).
không đòi hỏi phải có '()', vì bạn đang nói trình biên dịch và người xem tương lai mã của bạn, "Đây là hàm, không yêu cầu tham số." Rõ ràng luôn tốt hơn là ngầm. – orokusaki