Tôi có một tấn JavaScript từ buổi bình minh của thời gian với chức năng cuộc gọi được viết như thế này:Patterns JavaScript: Bối cảnh của Chức năng Gọi
THING.someFunction.call(THING);
Dường như với tôi rằng lúc nào cũng phải tương đương với:
THING.someFunction();
Hai cuộc gọi này luôn tương đương? Điều gì về các phiên bản cũ của JavaScript?
Dường như với tôi mục đích của dòng thứ hai THING
trong dòng mã đầu tiên đó là đặt bối cảnh (this
) bên trong someFunction
. Nhưng ngữ cảnh bên trong chức năng đó phải là THING
theo mặc định, đúng không?
Chỉ cần được rõ ràng, THING
được định nghĩa như thế này:
var THING = function() {
// private vars
return{
// code
someFunction : function() {
// code
}
};
}();
Cách bạn có mã của bạn ngay bây giờ, 'THING.someFunction' là' undefined'. – gilly3
Tôi tin rằng bạn đang thiếu dấu ngoặc đơn ở cuối THING tuyên bố tức là. THING = function {}(); –