javascript中以下这条程序为什么第二次输出的不是1,而是2?? function a() { this.x = 1; x = 2; alert(x); } a(); alert(x);22为什么alert(x)不是1,其作用域不是在windows吗?thix.x = 1也是windows作用域下啊。。第一个就无问题,因为被x = 2覆盖了;但第二个就有问题了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 直接执行 a(); a函数里的 this =window 所以this.x = 1; x = 2; //局部未定义算全局的可以写成 window.x=1 window.x = 2; 你没有定义函数里面的局部变量x,所以还算是全局的,改下就知道了function a() { this.x = 1; var x = 2; alert(x); } a(); alert(x); function a() { this.x = 1;//x是a的属性,赋值为1 x = 2;//无var x是全局变量,赋值为2 alert(x);//x前面没this,访问的是个变量,即全局变量x = 2 } a(); alert(x);//访问的是全局变量,若访问a的属性,必须alert((new a()).x); this.x=1;是全局变量,它的值已经被x=2覆盖了,之后再被调用,所以输出是2 这样看看function a() { x = 2; this.x = 1; alert(x);} a();alert(x); 如果直接调用,this就是window,就有可能被覆盖 this.x = 1;// this 是 a 的实例 ie window.history.back();的问题,求救各位高手 javascrip 怎样将string 类型转换成date类型 放在url中的参数对页面内容有影响怎么办? 十分困惑的问题~~~~高手请进啊! 正则表达式的问题??? 一個很小的問題﹐菜鳥菜﹐沒有辦法﹐大家幫幫我吧 如何判断一个数组变量是否存在啊?为什么每个版本的IE浏览器都不一样!!!!!! javascript如何控制纸张大小、横纵向以及页眉页脚? 点击链接后参数如何传递 高手帮我看看一个未解决的问题。 请问下 这两个函数 怎么才能 合并成一个函数 调用只用传id就行了 站外引用的优酷视频,怎样让视频高度自适应?
所以
this.x = 1;
x = 2; //局部未定义算全局的
可以写成
window.x=1
window.x = 2;
function a() {
this.x = 1;
var x = 2;
alert(x);
}
a();
alert(x);
this.x = 1;//x是a的属性,赋值为1
x = 2;//无var x是全局变量,赋值为2
alert(x);//x前面没this,访问的是个变量,即全局变量x = 2
}
a();
alert(x);//访问的是全局变量,若访问a的属性,必须alert((new a()).x);
function a() {
x = 2;
this.x = 1;
alert(x);
}
a();
alert(x);