Tương tự và khác biệt.
Một lớn - nhưng không độc quyền! - Sự khác biệt là, trong PHP, các phương thức là ràng buộc đối với một thể hiện của một lớp, trong khi trong JavaScript, các phương thức chỉ là các hàm (là giá trị hạng nhất) xảy ra được đặt tên theo ("được lưu trữ trong ") thuộc tính của đối tượng.
Vì phương thức PHP là bị ràng buộc đối với phiên bản của lớp, điều này có nghĩa là bên trong không thay đổi tùy thuộc vào cách phương thức được gọi.
Trong JavaScript, tuy nhiên, object.member(...)
tương đương với object["member"].call(object, ...)
: các this
bên trong phương thức JavaScript là hoàn toàn phụ thuộc vào cách hàm được gọi. (Đây là lý do tại sao gọi lại trong JavaScript đôi khi yêu cầu đóng cửa để vượt qua this
thông qua chính xác.)
Khi bạn tiếp tục tìm hiểu/sử dụng cả hai ngôn ngữ (và hy vọng các ngôn ngữ khác nhau hoàn toàn!), Bạn sẽ có thể thấy nhiều điểm tương đồng và khác biệt trong cả hai khác biệt thiết kế cơ bản và cú pháp. Học cách "tôn trọng" một ngôn ngữ, cho nó là gì và nó hoạt động như thế nào, là một cách tốt để kết bạn với nó.
Mã hóa vui vẻ.
Nguồn
2011-12-28 03:43:08
Nó tương tự, có. Nhưng JS không có các lớp như PHP. – powerbuoy
NB: '->' được gọi là "toán tử mũi tên", và 'op' được gọi là" ký hiệu chấm "(trái với" ký hiệu khung ":' o [s] ', trong đó' s == 'p''). Tôi không tin rằng có một tên chính thức cho '.' trong JS, mặc dù bạn có thể gọi nó là" nhà điều hành chấm "và được hiểu. Sử dụng '->', '.' hoặc' [] '(trong ngôn ngữ thích hợp) được gọi là" truy cập thuộc tính "hoặc" truy cập thành viên "(thuật ngữ cũ trong PHP thường bị hạn chế để chỉ các trường đối tượng truy cập, chứ không phải là các phương thức). – outis