VII. PHẦN TỬ SELECT
13.3. 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. Ngồ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:
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ử chưa đượ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. Ngồ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:
coffees = [“French Roast”,”Columbian”,”Kona”]
Ví dụ 2: Tạo ra một mảng với 2 phần tử được khởi đầu và một phần tử rỗng:
fish = [“Lion”, ,” Surgeon”]
Với biểu thức này, fish[0] là “Lion”, fish[2] là ” Surgeon”, và fish[2] chưa được định nghĩa