概要 with文に与えたオブジェクトの特定のプロパティがスコープに含まれることを防ぐための、 ビルトイン"unscopables"シンボルが実装された。 例 @@unscopablesプロパティのオブジェクトが有する名前のプロパティは、値がTruthyならスコープから外される。 var a = 'unscopable', b = 'unscopable', c = 'unscopable' var obj = { a: 'scopable', b: 'scopable', c: 'scopable', } obj[Symbol.unscopables] = { b: true, c: false } with (obj) { console.log(a, b, c) } /* log "scopable" "unscopable" "scopable" */ 何故必要なのか ES2015で