W debugerze JavaScript, mogę ręcznie sprawdzić scope chain funkcji. Na przykład, podczas wykonywania foo()
na ten kawałek kodu:Jak programowo sprawdzić łańcuch zasięgu JavaScript?
var x1 = "global";
var foo = (function main() {
var x2 = "inside obj";
return function internalFoo() {
var x3 = "inside internalFoo";
console.log (x1+','+x2+','+x3); // get the scopes
};
})();
foo();
i ustawianie punktu przerwania na console.log
, widzę następujące zakresy:
Czy istnieje jakiś sposób, aby zrobić to programowo?
Jak mogę sprawdzić, co jest zdefiniowane na każdym poziomie zakresu?