javascript — console.log содержание замыкания

console.log содержание замыкания

ПУТЬ 1: Внутреннее свойство [[Scope]]

Вы можете изменить свой код, добавив console.dir а затем запустите его в консоли Chrome Dev :

 var closure_F = (function(){ var info = "info-string"; var f1 = function(){ console.log(info); }; return f1; }()); closure_F(); console.dir(closure_F); // console.dir prints all the properties of a specified JavaScript object 

Если вы откроете консоль, то увидите, что она печатает все свойства объекта (функции), в том числе и внутреннее свойство [[Scopes]] .

Это внутреннее свойство [[Scopes]] будет содержать любые окружающие области действия closure_f , включая его замыкание.

[[Scope]] является внутренней реализацией JS и к ней нельзя получить программный доступ.

Внутреннее свойство Scope, содержащее Closure

ПУТЬ 2: Создание точки останова — debugger

Другой способ увидеть замыкание функции — добавить оператор debugger и создать точку останова в функции, замыкание которой вы хотите проверить. В качестве примера вы можете запустить это в консоли:

 function createClosure (){ var secret = "shhhhh"; return function inner(){ debugger; console.log(secret); }; }; var innerFunction = createClosure(); innerFunction(); 

www.ecma-international.org {amp}gt;{amp}gt; [[Область применения]] {amp}gt;{amp}gt; Таблица 9

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector