问题一:
按照老师讲解的,这段代码,的效果应该是
第一个alert “bar”
第二个alert“abc”
现实是,我在chrome的console中,直接运行结果是两个“bar”,是什么原因?
我的代码:
var foo='abc';
with({foo:'bar'}){
function f(){
alert(foo);
}
;(function (){
alert(foo)
})();//第一个alert,它应该弹出 with中的foo
f();//第二个alert,它应该使用全局中的foo
}
老师的代码:
var foo = "abc";
with({
foo: "bar"
}) {
function f() {
alert(foo);
};
(function() {
alert(foo);
})();
f();
}
运行效果:
问题二:with中的foo为什么不能使用= 有没有相关的材料呀?
foo="abc"
,其他语句都在with的环境内。{}
那不是个对象吗。。。。按照我的理解就是两个都是bar,不是失效了,而是生效了。