Đọc qua Invoking a function without parentheses nó được ghi nhiều lần trong các ý kiến và câu trả lời để không sử dụng mã như vậy trong quá trình sản xuất. Làm ơn đi, tại sao?Tại sao việc sử dụng hàm không có dấu ngoặc đơn trong sản xuất là xấu?
Tôi là người mới bắt đầu ở JavaScript như bạn có thể đoán từ câu hỏi. Nếu ai đó có thể cụm từ câu trả lời của họ trong điều khoản của giáo dân đó sẽ là tuyệt vời, mặc dù xin vui lòng truy cập cho các folks JS có kinh nghiệm trong số bạn có thể cần một chi tiết hơn và kỹ thuật trả lời chi tiết.
Ví dụ về những gì có thể hoặc không ổn với việc sử dụng các hàm không có dấu ngoặc đơn trong sản xuất sẽ là một bổ sung tuyệt vời cho câu trả lời.
Dưới đây là mã ví dụ về hàm gọi mà không có dấu ngoặc đơn được lấy từ câu trả lời cho câu hỏi đó.
var h = {
get ello() {
alert("World");
}
}
Chạy kịch bản này chỉ với:
h.ello // Fires up alert "world"
hoặc
var h = {
set ello (what) {
alert("Hello " + what);
}
}
h.ello = "world" // Fires up alert "Hello world"
Phù hợp hơn cho trang web [programmers.se]. – JJJ
Nếu bạn cố tình tạo các hàm không có dấu ngoặc đơn chỉ vì mục đích thực hiện nó, thì đừng. Tuy nhiên, nếu bạn có lý do hợp lệ, tôi không thấy lý do gì * không *. – Hatchet
Getters và setters được cho là * chỉ * nhận và đặt giá trị, nhưng điểm của chúng là mã gọi sử dụng chúng như thể chúng là các thuộc tính thuần túy. – nnnnnn