Một vấn đề rất khó hiểu tôi đang gặp phải với JavaScript. xem mã bên dưới ..Vấn đề về nhà xây dựng Javascript khó hiểu
az={
classes:{
test:function(){
this.hello=function(name){
alert('hello '+name);
}
}
},
getClass:function(name){
return az.classes[name];
}
};
var a=new az.classes['test']();
a.hello('foo');
var b= new az.getClass('test')();
b.hello();// fails !!!
trong mã nếu bạn nhận thấy chúng tôi có một lớp được xác định bên trong một đối tượng az.classes
. khi cố gắng tạo một thể hiện của lớp đó bằng cách mới az.classes['test]()
, nó hoạt động và a.hello()
thực hiện tốt. nhưng khi tôi gọi phương thức az.getClass('test')
, mà lần lượt trả về cùng một hàm tạo, nhưng nó không thành công khi tôi nói var b=new az.getClass('test');
ở đây câu nói của nó b
là undefined
!! và b.hello()
không thành công !! tôi không hiểu hành vi này! sự khác nhau giữa số mới az.classes['test']()
và số mới az.getClass('test')
là gì. Họ không giống nhau à ??
thử 'var b = new (az.getClass ('test'))();' thay thế. sau đó b sẽ giống như một – user2264587
@ gurvinder372 Bạn phải đọc một câu hỏi khác với tôi. Tôi thấy 'getClass: function (name)' – Phil