关注
在 ECMAScript 中,要掌握的最重要的概念之一是关键字 this 的用法,它用在对象的方法中。关键字 this 总是指向调用该方法的对象。简单说的就是调用了该方法this就是谁。
var a=10;
var foo={
a:20,
bar:function(){
var a=30;
return this.a;//this指向调用该方法的对象 }
}
foo.bar() foo调用了bar这个函数,this 指向的是foo,然后foo里面有个对象a,this.a其实就是foo.a。 输出的结果为20
(foo.bar)()
foo.bar 是一个匿名函数,调用这个匿名函数使用的是(),this指向这个匿名函数,但是这个匿名函数仅限于foo里面的全局变量使用,此时this.a就是foo里面的全局变量a. 和上面的调用方法是等价 this指向的就是foo这个对象。输出为20
(foo.bar=foo.bar)()
根据=从右向左进行赋值 把右边的foo.bar赋值到左边的foo.bar 等价于把右边的匿名函数重新赋值给脸foo.bar 此时 foo.bar整体相当于一个全局变量,这个变量是一个函数性质的变量,再用()调用这个函数时 this指向的是全局变量中的a 输出的是10。可以这么理解: var b = foo.bar; b() 输出的就是10
这个和上面的区别是使用了=号赋值(此时会改变this的指向)操作,上面那个没有进行=号赋值,后面直接进行调用的foo.bar这个匿名函数。
(foo.bar,foo.bar)() 理解了逗号运算符 就理解这个调用过程,相当于调用 左边foo.bar的匿名函数 剩下的就是和第二个调用的过程一样了。
这是js里面的逗号运算符
逗号运算符参考:
http://m.blog.csdn.net/blog/liaozhongping/46770249
http://www.zhihu.com/question/27620371
可以参考这篇文章理解:
http://www.nowcoder.com/discuss/2085
查看原帖
点赞 8
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 春招什么时候投? #
10627次浏览 180人参与
# 牛友的春节生活 #
7886次浏览 166人参与
# 春节前,你还在投简历吗? #
14299次浏览 164人参与
# 从夯到拉,锐评职场mentor #
5161次浏览 80人参与
# 牛客AI体验站 #
14853次浏览 267人参与
# 春节提前走,你用什么理由请假? #
10504次浏览 246人参与
# 实习到现在,你最困惑的一个问题 #
4590次浏览 132人参与
# 备战春招/暑实,现在应该做什么? #
5125次浏览 160人参与
# 工作后,你落下了哪些病根 #
32372次浏览 277人参与
# 怎么给家人解释你的工作? #
51569次浏览 208人参与
# 上班摸鱼,你都在干些什么? #
39141次浏览 246人参与
# 机械制造秋招总结 #
103308次浏览 886人参与
# 没有家庭托举的我是怎么找工作的 #
35718次浏览 266人参与
# 距离春招还有一个月,你现在是什么开局? #
7051次浏览 115人参与
# 今年秋招你收到了多少封邮件? #
37610次浏览 278人参与
# 聊聊Agent开发 #
25097次浏览 600人参与
# 暑期实习什么时候投? #
7226次浏览 170人参与
# 一起聊华为 #
191742次浏览 895人参与
# 什么是优秀的实习经历 #
35959次浏览 387人参与
# 面试经验谈 #
406415次浏览 7217人参与
格力公司福利 356人发布