JavaScript中的“this”关键字有什么作用?

5

与其他语言不同,JavaScript中的this始终指向我们正在执行的函数的“所有者”,或者更确切地说,指向函数作为方法所属的对象。

相比其他语言,这种行为的优点/目的是什么?

2个回答

3

在JS中,由于有this关键字的存在,你可以为任何你调用的函数设置作用域,从而允许你在函数闭包中做一些有趣的事情。这也是大多数JS框架允许你更加自然地实现面向对象类行为的方式。当你拥有事件监听器并想设置监听函数的作用域时,这种方式尤其有帮助。


1
  • 默认情况下,this 指向全局对象。
  • 当一个函数作为父对象的属性被调用时,this 在该函数内部指向父对象。
  • 当使用 new 运算符调用函数时,this 在该函数内部指向新创建的对象。
  • 当使用 call 或 apply 调用函数时,this 指向 call 或 apply 传递的第一个参数。如果第一个参数为 null 或不是对象,则 this 指向全局对象。

摘自 http://unschooled.org/2012/03/understanding-javascript-this/

还请查看相关内容。

http://javascriptplayground.com/blog/2012/04/javascript-variable-scope-this


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接