Symbol.unscopables - символ для виключення з with.
Symbol.unscopables;
unscopables властивість об'єкта Symbol яка містить символ для виключення з with. Використовується щоб приховати властивість від with.
var ob={name:'test'};
ob[Symbol.unscopables]=ob;
with(ob){
alert( name );
}
const object1={property1: 10};
object1[Symbol.unscopables]={property1: true};
with(object1){
alert(property1);
//ReferenceError: property1 is not defined
}
Властивість true вказує що властивість є невидимою для with:
var obj={ foo: 10, bar: 2 };
obj[Symbol.unscopables]={ foo: false, bar: true };
with (obj){
alert(foo); // 10
alert(bar); // ReferenceError: bar is not defined
}
var ob={x: 10, y: 20};
ob[Symbol.unscopables]={ y: true };
console.log(ob.x); // 1
console.log(ob.y); // 2
with(ob){
alert(x); // 1
alert(y); // ReferenceError: y is not defined
}