Tạo các đối tợng mớ
5.1.1. Sử dụng khởi tạo đối tợng
Trong những phiên bản trớc của Navigator, bạn chỉ có thể tạo ra một đối tợng bằng cách sử dụng hàm xây dựng chúng hoặc sử dụng một hàm đợc cung cấp bởi một vài đối tợng khác để đạt đợc mục đích.
Tuy nhiên, trong Navigator 4.0, bạn có thể tạo ra một đối tợng bằng cách sử dụng một khởi tạo đối tợng.Bạn sử dụng cách này khi bạn chỉ muốn tạo ra một cá thể đơn lẻ chứ không phải nhiều cá thể của đối tợng.
Cú pháp để tạo ra một đối tợng bằng cách khởi tạo đối tợng (Object Initializers):
objectName={property1: value1, property2: value2, ..., propertyN: valueN}
Trong đó objectName là tên của đối tợng mới, mỗi propertyI là một xác minh (có thể là một tên, một số hoặc một xâu ký tự) và mỗi valueI là một biểu thức mà giá trị của nó đợc gán cho propertyI. Có thể lựa chọn khởi tạo bằng tên đối tợng hoặc chỉ bằng các khai báo. Nếu nh bạn không cần dùng đến đối tợng đó trong mọi chỗ, bạn không cần phải gán nó cho một biến.
Nếu một đối tợng đợc tạo bằng cách khởi tạo đối tợng ở mức cao nhất, mỗi lần đối tợng đó xuất hiện trong các biểu thức, JavaScript sẽ đánh giá lại nó một lần. Ngoài ra, nếu sử dụng việc khởi tạo này trong một hàm thì mỗi lần gọi hàm, đối tợng sẽ đợc khởi tạo một lần
Giả sử bạn có câu lệnh sau:
if (condition)
x={hi: ”there.”}
Trong trờng hợp này, JavaScript sẽ tạo ra một đối tợng và gắn nó vào biến x nếu biểu thức condition đợc đánh giá là đúng
Còn ví dụ sau tạo ra một đối tợng myHonda với 3 thuộc tính:
myHonda={color:”red”,wheels:4,engine:{cylinder:4,size:2.2}}
Chú ý rằng thuộc tính engine cũng là một đối tợng với các thuộc tính của nó Trong Navigator 4.0, bạn cũng có thể sử dụng một khởi tạo để tạo một mảng. Cú pháp để tạo mảng bằng cách này khác với tạo đối tợng:
arrayName=[element0, element1,...,elementN]
Trong đó, arrayName là tên của mảng mới, và mỗi elementI là giá trị của phần tử ở vị trí đó của mảng. Khi bạn tạo một mảng bằng cách sử dụng phơng pháp khởi tạo, thì nó sẽ coi mỗi giá trị là một phần tử trên mảng, và chiều dài của mảng chính là số các tham số.
Bạn không cần phải chỉ định rõ tất cả các phần tử trên mảng mới. Nếu bạn đặt hai dấu phẩy vào hàng, thì mảng sẽ đợc tạo với những chốn trống cho những phần tử cha đợc định nghĩa nh ví dụ dới đây:
Nếu một mảng đợc tạo bằng cách khởi tạo(initializer) ở mức cao nhất, mỗi lần mảng đó xuất hiện trong các biểu thức, JavaScript sẽ đánh giá lại nó một lần. Ngoài ra, nếu sử dụng việc khởi tạo này trong một hàm thì mỗi lần gọi hàm, mảng sẽ đợc khởi tạo một lần
Ví dụ1: Tạo một mảng coffees với 3 phần tử và độ dài của mảng là 3:
fish = [“Lion”, ,” Surgeon”]
Với biểu thức này, fish[0] là “Lion”, fish[2] là ” Surgeon”, và fish[2] cha đợc định nghĩa