Kết cấu đối tượng JavaScript
- Trang trước Truy cập đối tượng JS
- Trang tiếp theo Giao thức đối tượng JS
thực thể
Khóa học gợi ý: this.firstName = first; this.lastName = last; this.age = age; function Person(first, last, age, eye) { }
this.eyeColor = eye;
thói quen đặt tên cho hàm构造器 bằng chữ cái đầu in đậm là một thói quen tốt.
loại đối tượng (sơ đồ) (class)
trong chương trước có giới hạn. Chúng chỉ tạo ra một đối tượng duy nhất.thỉnh thoảng chúng ta cần tạo nhiều đối tượng cùng "loại".sơ đồ
”。phương pháp tạo ra một loại "đối tượng" là sử dụng。
hàm构造器 đối tượngTrong ví dụ trên, hàm Person()
chính là hàm构造器 đối tượng. new để
ký tự từ khóa gọi hàm构造器 có thể tạo ra đối tượng cùng loại: var myFather = new Person("Bill", "Gates", 62, "blue");
this var myMother = new Person("Steve", "Jobs", 56, "green");
ký tự từ khóa this
thứ có trong JavaScript được gọi là
this
giá trị, khi được sử dụng trong đối tượng, chính là đối tượng đó.
Trong hàm构造器中,this
Không có giá trị. Nó là vật thay thế cho đối tượng mới. Khi một đối tượng mới được tạo ra, giá trị của this sẽ trở thành đối tượng đó.
Xin lưu ý this
Nó không phải là biến. Nó là từ khóa. Bạn không thể thay đổi giá trị của this.
Thêm thuộc tính vào đối tượng
Thêm thuộc tính mới vào đối tượng đã có rất đơn giản:
thực thể
myFather.nationality = "English";
Thuộc tính mới được thêm vào myFather. Không phải myMother, cũng không phải bất kỳ đối tượng person nào khác.
Thêm phương thức vào đối tượng
Thêm phương thức mới vào đối tượng đã có rất đơn giản:
thực thể
myFather.name = function () { return this.firstName + " " + this.lastName; };
Phương thức mới được thêm vào myFather. Không phải myMother, cũng không phải bất kỳ đối tượng person nào khác.
Thêm thuộc tính vào constructor
Khác với việc thêm thuộc tính mới vào đối tượng đã có, bạn không thể thêm thuộc tính mới vào constructor của đối tượng:
thực thể
Person.nationality = "English";
Nếu muốn thêm một thuộc tính mới vào constructor, bạn phải thêm vào hàm constructor:
thực thể
function Person(first, last, age, eyecolor) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eyecolor; this.nationality = "English"; }
Như vậy các thuộc tính của đối tượng có thể có giá trị mặc định.
Thêm phương thức vào constructor
Hàm constructor của bạn cũng có thể định nghĩa phương thức:
thực thể
function Person(first, last, age, eyecolor) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eyecolor; this.name = function() {return this.firstName + " " + this.lastName;}; }
Khác với việc thêm phương thức mới vào đối tượng đã có, bạn không thể thêm phương thức mới vào constructor của đối tượng.
Phải thêm phương thức vào đối tượng trong hàm constructor:
thực thể
function Person(firstName, lastName, age, eyeColor) { this.firstName = firstName; this.lastName = lastName; this.age = age; this.eyeColor = eyeColor; this.changeName = function (name) { this.lastName = name; }; }
Hàm changeName() gán giá trị name vào thuộc tính lastName của đối tượng person.
Bây giờ bạn có thể thử:
myMother.changeName("Jobs");
bằng cách sử dụng myMother
thay thế this،JavaScript có thể biết người nào đang được xử lý hiện tại.
Hàm xây dựng trong JavaScript
JavaScript cung cấp các hàm xây dựng cho các đối tượng nguyên thủy:
thực thể
var x1 = new Object(); // Một đối tượng Object mới var x2 = new String(); // Một đối tượng String mới var x3 = new Number(); // Một đối tượng Number mới var x4 = new Boolean(); // Một đối tượng Boolean mới var x5 = new Array(); // Một đối tượng Array mới var x6 = new RegExp(); // Một đối tượng RegExp mới var x7 = new Function(); // Một đối tượng Function mới var x8 = new Date(); // Một đối tượng Date mới
Math()
Đối tượng không ở trong danh sách này. Math là đối tượng toàn cục.new
Các từ khóa không thể sử dụng trong Math.
Bạn có biết không?
Như bạn đã thấy ở trên, JavaScript cung cấp phiên bản đối tượng của các loại dữ liệu nguyên thủy chuỗi, số và logic. Nhưng không có lý do nào để tạo ra đối tượng phức tạp. Giá trị nguyên thủy nhanh hơn nhiều!
hãy sử dụng biểu thức văn bản đối tượng {}
thay thế new Object()
。
hãy sử dụng biểu thức văn bản chuỗi ""
thay thế new String()
。
hãy sử dụng biểu thức văn bản số thay thế Number()
。
hãy sử dụng biểu thức văn bản logic thay thế new Boolean()
。
hãy sử dụng biểu thức văn bản mảng []
thay thế new Array()
。
hãy sử dụng biểu thức văn bản mẫu thay thế new RexExp()
。
hãy sử dụng biểu thức hàm () {}
thay thế new Function()
。
thực thể
var x1 = {}; // 新对象 var x2 = ""; // 新的原始字符串 var x3 = 0; // 新的原始数值 var x4 = false; // 新的原始逻辑值 var x5 = []; // Đối tượng mảng mới var x6 = /()/ // Đối tượng biểu thức chính quy mới var x7 = function(){}; // Đối tượng hàm mới
Đối tượng chuỗi
Thường thì chuỗi được tạo thành giá trị nguyên thuỷ: var firstName = "Bill"
Nhưng bạn cũng có thể sử dụng new
Tạo đối tượng chuỗi bằng từ khóa: var firstName = new String("Bill")
Vui lòng JS ChuỗiTrong chương này, bạn sẽ học tại sao không nên tạo chuỗi thành đối tượng.
Đối tượng số
Thường thì giá trị số được tạo thành giá trị nguyên thuỷ: var x = 456
Nhưng bạn cũng có thể sử dụng new
Tạo đối tượng số bằng từ khóa: var x = new Number(456)
Vui lòng JS SốTrong chương này, bạn sẽ học tại sao không nên tạo giá trị số thành đối tượng.
Đối tượng布尔
Thường thì giá trị logic được tạo thành giá trị nguyên thuỷ: var x = false
Nhưng bạn cũng có thể sử dụng new
Tạo đối tượng logic bằng từ khóa: var x = new Boolean(false)
Vui lòng JS LôgicTrong chương này, bạn sẽ học tại sao không nên tạo giá trị logic thành đối tượng.
- Trang trước Truy cập đối tượng JS
- Trang tiếp theo Giao thức đối tượng JS