JavaScript 下面的函数怎么理解?大神能不能一句句解释下,谢谢,初学

varx=1;functiontest(){alert(this.x);}test();//1varx=1;functiontest(){this.x=0;}test()... var x = 1;
function test() {
alert(this.x);
}
test();//1

var x = 1;
function test() {
this.x = 0;
}
test();
alert(x);//0
展开
 我来答
百度网友2571d37bb
推荐于2016-04-07 · 知道合伙人软件行家
百度网友2571d37bb
知道合伙人软件行家
采纳数:1971 获赞数:7907
前端工程师

向TA提问 私信TA
展开全部
var x = 1;     // 定义一个变量,变量名是x
function test() {   // 定义一个函数,函数名叫 test
    alert(this.x);   // 函数执行的内容,是弹出一个值,这个值是this.x
}
test();//1  //执行函数,弹1,原因是 this 是window,就相当于弹window.x ,var x 这个是全局变量,存在window里,所以就相当于是弹1, 但是var x 和 window.x 有内在区别。

var x = 1; 
function test() {
    this.x = 0;
}
test();   //这里同上
alert(x);//0    //这里 因为test函数执行,修改了全局变量x的值,为0 ,所以弹0.
百度网友0498059
2015-09-17 · TA获得超过259个赞
知道小有建树答主
回答量:286
采纳率:75%
帮助的人:215万
展开全部
可以把var x=1认为window.x=1,
可以把function test()认为 window.test=function(){},
所以test函数里的this指的是window,因此this.x就是window.x,
函数里面的this.x=0就把window.x赋值为0,所以最后弹出0.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乘风破浪wl
2015-09-17 · TA获得超过328个赞
知道小有建树答主
回答量:206
采纳率:75%
帮助的人:161万
展开全部
this表示当前文档,第一个获取当前文档的x的值当然是1;
第二个函数执行了后,this.x=0设置当前文档的x=0(全局变量),后面在alert是x就已经变为0了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式