Daily Archives: 2011/12/15

一道JS的面试题

题目:

with({}){
//在不污染全局情况下定义 with 里内部变量
//代码必须写在以下大括号里
alert(f) // 1 ,让 f 值为 1
}
alert(window.f) //undefined

答案:

with({}){
//在不污染全局情况下定义 with 里内部变量
//代码必须写在以下大括号里
constructor = function(){return this;};
constructor = constructor();
constructor.f = 1;
alert(f) // 1 ,让 f 值为 1
}
alert(window.f) //undefined

利用object的构造器功能, 使with的作用域做出改变