javascript函数自执行里的this为什么指向window

 我来答
人啦哈w
2016-07-25 · 知道合伙人软件行家
人啦哈w
知道合伙人软件行家
采纳数:3947 获赞数:19705

向TA提问 私信TA
展开全部
因为函数执庆喊行时猜渣,实际是window调用了它,也就是window.函数名();那么,里面的this指向当前调用该函穗差悄数的对象,就是window。
全国流窜
2016-11-18 · TA获得超过403个赞
知道小有建树答主
回答量:417
采纳率:50%
帮助的人:165万
展开全部

this关键字代指当前对象。未必仅指window.


比如:

<body>

<form onsubmit="return checkform(this)">
<input type="text" name="txtbox" />
<input type="button" value="button" onclick="callme(this)"/>
<input type="submit" value="submit" name="btnsubmit"/>

</form>
</body>
这里的this指当前的form。

在checkform函数中就可以这么写:

function checkform(form){
 凯码    if(form.txtbox.value == ""){ alert("no data"); return false; }
}

在type="button"中,callme函数中的this,代表当前的button对象。谈陆

在javascript中写callme函数:

function callme(o){
    alert(Object.prototype.toString.call(o)); //结果显示:[object HTMLInputElement]
}

再试着运行这一段:

window.onload 盯侍哪= function(){ callme(this);  } //结果显示:[object Window],这里的this才是指window

再试着运行这一段:

var m = {
    callme: function(){
        alert(Object.prototype.toString.call(this));
    }
};
window.onload = function(){ m.callme(this);  } //结果显示:[object Object],这里的this是指对象m,
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
LPaeMoeye
2016-08-15 · 超过13用户采纳过TA的回答
知道答主
回答量:24
采纳率:0%
帮助的人:17.8万
展开全部
在隐世匿名函数,定时器,计时器里面的this都是指搭携乱向window的,你可以看作是全知档局的方法,所以指向window吧,没有为什么-。-
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友fed6fb949c
2016-09-13 · TA获得超过555个赞
知道小有建树答主
回答量:712
采纳率:50%
帮助的人:57.2万
展开全部

this表示当前对象

  1. 在function中,表示function定行指耐猛义的对象自身

  2. 在html  onclick中,表示单击的对象

  3. 在js文件中function之外表示window,档亩配因为window是html的顶级对象,相当于默认值

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
土楼人论坛
2016-08-31 · TA获得超过339个赞
知道小有建树答主
回答量:501
采纳率:0%
帮助的人:127万
展开全部
this代表现在的对象,我举个码稿例子:
假如下面有5个div,也就是五个对象,分别命名为1,2,3,4,5。灶御现在我要设置当鼠标点击div时候,背景颜色变为红色。你只要在js里面写执行的标签为div,然后用this来指定你点击div时候需要改变背景颜色隐模岩的div.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式