Các biến được định nghĩa bên trong hàm bên trong có cùng tên như một biến trong hàm ngoài được phân lập từ biến ngoài không?Đóng cửa JavaScript và đặt tên là clobbering
function() {
var myTest = "hi there";
(function(myTest) {
myTest = "goodbye!";
})();
console.log(myTest); // myTest should still be "hi there" here, correct?
}
Đương nhiên nếu tôi không tuyên bốmyTest
bên trong hàm bên trong nó sẽ tạo ra một đóng và sửa đổi bản gốc. Tôi chỉ muốn đảm bảo rằng các biến được khai báo bên trong một hàm bên trong luôn được tách biệt với hàm đó ngay cả khi tên của chúng có thể xung đột với một phạm vi bên ngoài.
Bằng cách "sử dụng" Tôi giả sử bạn có nghĩa là "tuyên bố" có đúng không? – devios1
@chaiguy: Có, xin lỗi. Trộn lẫn từ của tôi có một chút. – Ryan
phương pháp này cũng tránh tra cứu phạm vi. –