JavaScript đã hiện đại hóa ngôn ngữ hướng đối tượng với cấu trúc động. Không có các lớp như trong ngôn ngữ C, nơi các phương thức và thuộc tính được định nghĩa đầu tiên và sau đó được sử dụng làm mô hình để tạo các thể hiện
Một đối tượng JavaScript được định nghĩa theo cú pháp là một hàm, mà bản thân nó là phiên bản đầu tiên và được sao chép để tạo ra nhiều phiên bản khác.
Ngoài ra, cấu trúc này là động, các phương thức [thực tế là các hàm bên trong] và thuộc tính có thể được thêm vào trong quá trình thực thi tập lệnh.
Câu hỏi chính là liệu một phương thức hoặc thuộc tính có được thêm động vào một đối tượng hay không, chúng trở nên khả dụng cho các đối tượng có nguồn gốc hay không, những gì chúng ta sẽ thấy.
Một đối tượng được định nghĩa là một hàm
Đối tượng được tạo bằng cách định nghĩa một hàm tạo và bằng cách gán nó cho một mã định danh. Toán tử này định nghĩa một biến là thuộc tính và một hàm là phương thức
function fruit[price]
{
var color = "red";
this.price = price;
}
Constructor có thể có các đối số, và nó chứa các thuộc tính.
Nó được gán với từ khóa mới.
myfruit = new fruit[120];
Có thể tạo một đối tượng bằng cách gán một chữ bao gồm danh sách các thuộc tính/giá trị được phân tách bằng dấu phẩy
myfruit = { price:120, color:"red" };
Bản demo của bài tập tĩnh
myfruit = {
price:120,
color:"red",
orange: {
price:25
}
};
document.write["assignement of a literal object: "];
document.write[myfruit.orange.price];
Phiên bản được tạo với toán tử mới
function fruit[v]
{
var color = "red"
this.price = v;
}
var myfruit=new fruit[120]
document.write[myfruit.price];
Thuộc tính color không thể được gọi vì nó được khai báo là biến cục bộ. Nó là một thuộc tính riêng tư [được thảo luận bên dưới]
Phiên bản có thể được khai báo trực tiếp với định nghĩa của đối tượng cung cấp một giá trị được gán cho các tham số nếu bạn muốn truy cập nó sau đó. Thí dụ
var myfruit = new fruit[p = 200]
{
this.price = p;
}
document.write[myfruit.price];
Thuộc tính của một đối tượng có thể được thêm vào trong quá trình xử lý
Một đối tượng có thể được định nghĩa như một danh sách các thuộc tính, tương đương với các thuộc tính của một lớp
Bạn có thể thêm thuộc tính theo cú pháp sau
objectname.propertyname = xxxx
Thuộc tính được truy cập theo cùng một cú pháp. Ví dụ đối tượng fruit có thuộc tính price
alert[fruit.price];
Một đối tượng có thể được xác định lại động với thuộc tính nguyên mẫu
Bạn có thể thêm thuộc tính trực tiếp vào một đối tượng đã được xác định. Để thêm động một thuộc tính và thuộc tính đó được sử dụng bởi tất cả các bản sao bắt nguồn từ cùng một đối tượng, ngay cả khi chúng được tạo trước khi thuộc tính được thêm vào, hãy sử dụng nguyên mẫu từ dành riêng
________số 8Thuộc tính nhiên liệu thuộc về trái cây của tôi và tất cả các trường hợp khác được xác định từ trái cây
Ví dụ về kế thừa trong JavaScript và sửa đổi có hiệu lực trở về trước của nguyên mẫu [và tất cả các phiên bản của nguyên mẫu]
var myfruit = new fruit[p = 200]
{
this.price = p;
}
apple = myfruit;
document.write[apple.price];
fruit.prototype.origin="Europa";
document.write["origin=" + truck.origin];
Một đối tượng có thể chứa đối tượng khác được gán làm giá trị của thuộc tính
Một thuộc tính có thể là một đối tượng khác. Trong trường hợp này, chúng tôi truy cập các thuộc tính của đối tượng bên trong bằng một chuỗi các mã định danh được phân tách bằng dấu chấm.
Ví dụ: nếu đối tượng myfruit chứa một đối tượng x có hàm tạo màu cam với giá thuộc tính, người ta có thể đạt được giá bằng cách.
myfruit = new fruit[120];
0Một đối tượng có thể được kết hợp vào một đối tượng khác như một nghĩa đen
myfruit = new fruit[120];
1Đối tượng myfruit cũng chứa đối tượng được xác định bằng chữ. Lưu ý dấu phẩy ngăn cách các mục thay vì dấu chấm phẩy
Các giá trị của thuộc tính được truy cập dưới dạng trong một mảng
Giá trị của các thuộc tính được truy cập theo tên, như trên hoặc thông qua thứ tự của chúng trong danh sách các thuộc tính của đối tượng, như với các phần tử của một mảng, miễn là đối tượng đó là một phần của tài liệu HTML
Nếu đối tượng không phải là một phần của tài liệu HTML, bạn có thể truy cập giá trị theo tên của thuộc tính hoặc theo chỉ mục nếu giá trị đã được thêm vào tại một vị trí
Ví dụ: nếu một người gán giá trị theo vị trí
myfruit = new fruit[120];
2Chúng tôi truy cập giá trị theo cùng một cách
myfruit = new fruit[120];
3Một đối tượng tương ứng với một mảng có hai giá trị, với các phần tử hoặc thuộc tính có thứ tự, không giống như PHP sử dụng các số làm cả khóa và thứ tự, điều này làm cho nội dung của mảng đôi khi không thể xác định được
Demo truy cập thông qua chỉ số
myfruit = new fruit[120];
4Các phương thức được thêm vào một đối tượng tĩnh hoặc động
Chúng ta có thể khai báo một hàm trong một hàm khác và điều này tương đương với JavaScript để xác định một phương thức trong một đối tượng
Để sử dụng một phương thức, chúng ta phải khai báo một thể hiện của đối tượng, không thể sử dụng trực tiếp. Lưu ý rằng có thể tạo một đối tượng tĩnh, như được thảo luận bên dưới
Thí dụ
myfruit = new fruit[120];
5Và chúng ta có thể thêm động một thuộc tính hoặc một phương thức
myfruit = new fruit[120];
6Nếu chúng ta khai báo phương thức động thì các thuộc tính được thêm động phải được tham chiếu bằng từ khóa this
Bạn cũng có thể khai báo các thuộc tính và phương thức tĩnh bên trong một mảng kết hợp
myfruit = new fruit[120];
7Vì vậy, chúng có thể được tham chiếu trực tiếp với đối tượng tĩnh. Bạn không thể tạo một thể hiện của mảng, nhưng bạn có thể gán nó cho các biến, hiệu quả là như nhau
Các phương thức và thuộc tính là riêng tư hoặc công khai
Để tạo các thành viên riêng, chúng tôi giới hạn phạm vi cho đối tượng, vì vậy chúng tôi sử dụng một biến có khai báo var và thậm chí đối với một hàm, chúng tôi gán nó cho một biến cục bộ
myfruit = new fruit[120];
8Thay vào đó, để tạo các thành viên có thể được gọi bên ngoài đối tượng, chúng tôi cung cấp cho họ phạm vi toàn cục và tiền tố this