2014-12-14 2 views
1

let 키워드는 범위 지정을 위해 IIFE에 대한 대안을 제공합니까?ES6에서 블록 범위 지정

다음 유효한 구문은 ES6입니까? 개인 변수 myPrivateVariable을 범위 지정하기 위해 대괄호로 익명 블록을 만들려고합니다.

let foo; 

{ 
    let myPrivateVariable = 'x'; 

    foo = function(bar) { 
    return myPrivateVariable + bar; 
    }; 
} 

//foo is now a function with access to a 'private' variable. 

답변

2

예, 코드가 잘 실행하고 예상 무슨 수행합니다

"use strict"; 

let foo; 

{ 
    let myPrivateVariable = 'x'; 

    foo = function(bar) { 
     return myPrivateVariable + bar; 
    }; 
} 

console.log(foo('y')); // xy 
console.log(myPrivateVariable); // error 

--harmony 플래그, 노드 v0.11.12로 테스트.

IIFE의 전체 요점은 블록 범위 지정을 에뮬레이션하는 것입니다. 예, let은 더 이상이 트릭을 필요로하지 않습니다.