Tại sao chúng tôi không thể trực tiếp sử dụng this
thay vì self
trong ví dụ sau?Tại sao chúng ta cần "var self = this" trong các lớp trong Javascript?
function SeatReservation(name, initialMeal) {
var self = this;
self.name = name;
self.meal = ko.observable(initialMeal);
}
Sau phản ứng, tôi đã học được:
Vâng, không có nhu cầu nếu không có chuyển đổi bối cảnh trong lớp.
Nhưng tôi sẽ sử dụng phương pháp này là "quy ước" mặc dù không cần thiết.
Liệu setTimeout chạy trong constructor? Hay là phương pháp của lớp? – ozz
@ozz: Xem tài liệu cho ['window.setTimeout'] (https://developer.mozilla.org/en/DOM/window.setTimeout); nó trì hoãn việc thực hiện hàm được cung cấp cho số mili giây được chỉ định. – Matt
Chưa kể, setTimeout cũng cho phép bạn chuyển một tham số. ví dụ: http://jsfiddle.net/gRoberts/rYB3f/ trong ví dụ của bạn, sẽ loại bỏ nhu cầu redeclare 'this' là 'self'. – Gavin