js中this关键字的解释:

<scripttype="text/javascript">varF=function(){returnF.fn.init();};F.fn=F.prototype={i... <script type="text/javascript">
var F= function(){
return F.fn.init();
};

F.fn = F.prototype = {
init: function(){
this.length = 0;
this.test = function(){
return this.length;
}
return this;
},
f: "1.3.2",
length: 1,
size: function(){
return this.length;
}
};

alert(F().f); // 返回 "1.3.2"
alert(F().test()); // 返回 0
alert(F().size()); // 返回 0
</script>
个人理解:
init中return this 返回的是F.fn对象,所以第一个alert(F().f); 结果是1.3.2;
但是第二个和第三个alert();不能理解;
请前辈们赐教啊!!
展开
 我来答
tydkujrdt
推荐于2016-01-07
知道答主
回答量:13
采纳率:0%
帮助的人:10.4万
展开全部
简单来说你看到的this就是指对象,比如我一个函数式这样的
obj.onclick=function()
{
alert(this.innerHTML)
}
this就是指obj,
在你的函数里面刚刚定义了this.length=0;所以第二个this指向是this
第三个函数你根本没有定义size的length,所以也是0
追问
alert(F().test());        
这个不是应该返回1吗,可实际是返回的0啊,为什么
追答
init: function(){  
this.length = 0;
this.test = function(){
return this.length;
}
看这个函数,this指向的是init,init的length=0,init的test方法返回的是init的length;你说返回应该是几啊?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式