Có nhiều ngôn ngữ trong đó các thuộc tính có thể được hỗ trợ bằng các cuộc gọi phương thức bao gồm JavaScript. Tùy thuộc vào người triển khai để quyết định cách triển khai.
Bạn có thể có các thuộc tính của riêng bạn được hỗ trợ bởi các chức năng. Tôi đã có answered một câu hỏi tương tự trước đây, vì vậy sẽ không lặp lại câu hỏi ở đây.
Ruby cũng không yêu cầu dấu ngoặc đơn sau khi gọi phương thức. Đây là mã Ruby hợp lệ
[].size // size is an Array method
object.x = 42; // x= is a method (setter)
Python cũng có khái niệm về tính năng được hỗ trợ chức năng. Dưới đây là một ví dụ bằng Python:
class Foo(object):
def __init__(self):
self._x = None
@property
def x(self):
print "getter called"
return self._x
@x.setter
def x(self, value):
print "setter called"
self._x = value
f = Foo()
f.x = "20"
setter called
f.x
getter called
ngoặc chỉ là cú pháp và có truyền thống được sử dụng cho các cuộc gọi chức năng/phương pháp, nhưng nó không phải là một tiêu chuẩn phổ cập bởi bất kỳ phương tiện.
Thử '[1,2,3,4] .length = 2'. Xem http://jsfiddle.net/jfriend00/9bddC/. – jfriend00
Độ dài mảng Java cũng là một thuộc tính (giả). Ngoài ra, trong nhiều ngôn ngữ, bao gồm Ruby (RoR không phải là một ngôn ngữ), dấu ngoặc đơn thường là tùy chọn. –
Trên thực tế trong Ruby [trên Rails], không có khái niệm đặc tính riêng biệt và bạn luôn có thể bỏ qua dấu ngoặc đơn (trừ khi được yêu cầu để ưu tiên) – Gareth