Tôi đang tìm hiểu về nguyên mẫu javascript và thực hiện một Fiddle (http://jsfiddle.net/3MuZa/1/) với javascript này:Tại sao bàn điều khiển lưu ý rằng tôi đã thay đổi nguyên mẫu trước khi làm?
function Animal(name, sound) {
this.name = name;
this.sound = sound;
}
var dog = new Animal("Dog", "Bark");
console.debug(dog.__proto__);
Animal.prototype.makeSound = function() {console.log(this.sound);};
Điều thú vị là, console.debug(dog.__proto__);
tiết lộ rằng makeSound
là một phương pháp nguyên mẫu của lớp Thú.
Tuy nhiên, tôi thêm phương thức đó vào nguyên mẫu ở dòng sau. Tại sao Console lại lưu ý rằng nguyên mẫu có phương thức makeSound
nếu luồng điều khiển chưa nhận được trong mã của tôi?
Đặt điểm ngắt trên dòng cuối cùng đó. Thực hiện cho điểm ngắt đó. Kiểm tra bảng điều khiển. Bạn sẽ thấy rằng 'makeSound' không hiện diện. –
Cảm ơn bạn! Thật vậy, thiết lập một điểm ngắt và kiểm tra các biến cục bộ cho thấy phương thức 'makeSound' không tồn tại. –