Tôi đã đọc Thiết kế trò chơi với HTML5 và JavaScript và nó đã giới thiệu tôi với các đối tượng. Vì vậy, sau khi đọc cuốn sách và làm việc trên các dự án, tôi quyết định thực hiện kiến thức mới này và tích hợp các đối tượng trong các dự án của riêng tôi. Vì vậy, đây là câu hỏi của tôi có thể hoặc nên các đối tượng gọi chức năng riêng của họ? Ví dụ:Chức năng gọi đối tượng Javascript từ chính nó
var someObject = {
start: function() {
check();
},
check: function() {
console.log("Check!");
}
};
someObject.start();
Cuốn sách này đã cho thấy một ví dụ với một bộ đếm thời gian mà thực hiện điều này:
var timer = {
start: function() {
var self = this;
window.setInterval(function(){self.tick();}, 1000);
},
tick: function() {
console.log('tick!');
}
};
Trong ví dụ với bộ đếm thời gian đối tượng nó làm cho một tham chiếu đến tự để gọi hàm nội bộ, do đó, điều này có nghĩa là tôi nên sử dụng tự để gọi chức năng nội bộ hoặc là điều này đúng cách để làm điều này với các đối tượng? Hoặc thực hành tốt nhất? Cảm ơn trước.
var someObject = {
start: function() {
var self = this;
self.check();
},
check: function() {
console.log("Check!");
}
};
someObject.start();
Lý do họ sử dụng nó trong 'dụ setTimeout' là vì callback của nó được thực hiện trong phạm vi toàn cầu, vì vậy giá trị của' this' trong 'setTimeout' gọi lại là 'cửa sổ'. Để giữ một tham chiếu đến đối tượng ban đầu, bạn phải sử dụng phương thức đó (lưu trữ nó trong 'self') hoặc một số dạng sử dụng' Function.bind() ' – Ian