Tôi đang cố gắng tạo đối tượng UserDon và cố gắng tạo phương thức get và set theo lập trình (dựa trên cuốn sách Javascript của John Resig trang 37) và thử nghiệm trên Firefox 3.5Tạo phương pháp get/set động trong javascript
Vấn đề là: trong hàm UserDon, "this" dùng để chỉ đối tượng cửa sổ thay vì đối tượng UserDon.
Vì vậy, sau khi gọi var userdon = new UserDon (...), tôi đã thiết lập các phương thức setname và getname được tạo trên đối tượng cửa sổ (cũng là setage và getage).
Làm cách nào để khắc phục sự cố này?
function UserDon(properties) {
for(var i in properties) {
(function(){
this[ "get" + i ] = function() {
return properties[i];
};
this[ "set" + i ] = function(val) {
properties[i] = val;
};
})();
}
}
var userdon = new UserDon({
name: "Bob",
age: 44
});
Tốt câu hỏi nếu điều này là một bài tập.Nếu không, nếu bạn không thực hiện bất kỳ thao tác bổ sung nào trong getters/setters, bạn hy vọng chỉ cần sử dụng các thuộc tính công khai và từ bỏ phương thức overhead. :) – deceze