关注
在 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
相关推荐
12-14 11:43
黑龙江大学 Java
用微笑面对困难:确实比较烂,可以这么修改:加上大学的qs排名,然后大学简介要写一些,然后硕士大学加大加粗,科研经历第一句话都写上在复旦大学时,主要负责xxxx,简历左上角把学校logo写上,建议用复旦大学的简历模板 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客2025仙途报告 #
17028次浏览 285人参与
# 元旦假期你打算怎么过 #
1479次浏览 48人参与
# 一人说一家双休的公司 #
69次浏览 1人参与
# 我们是不是被“优绩主义”绑架了? #
2931次浏览 125人参与
# 对2025年忏悔 #
68次浏览 1人参与
# 实习没人带,苟住还是跑路? #
981次浏览 31人参与
# 找工作,行业重要还是岗位重要? #
87922次浏览 1762人参与
# 参加过提前批的机械人,你们还参加秋招么 #
105220次浏览 1647人参与
# 今年你最想重开的一场面试是? #
14844次浏览 159人参与
# 没有家庭托举的我是怎么找工作的 #
32055次浏览 263人参与
# 礼物开箱Plog #
3568次浏览 108人参与
# 秋招落幕,你是He or Be #
23960次浏览 404人参与
# 一人说一个提前实习的好处 #
25883次浏览 334人参与
# 你面试体验感最差/最好的公司 #
31020次浏览 511人参与
# 实习要如何选择和准备? #
130580次浏览 1515人参与
# 机械人晒出你的简历 #
148676次浏览 886人参与
# 华为池子有多大 #
154270次浏览 866人参与
# 工作中听到最受打击的一句话 #
14248次浏览 185人参与
# 你有哪些缓解焦虑的方法? #
44686次浏览 869人参与
# 设计人的面试记录 #
176962次浏览 1575人参与

