Javascript中'this'关键字的用途是什么?

时间:2012-05-24 20:59:08

标签: javascript

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

这种行为与其他语言相比有什么优势/目的?

2 个答案:

答案 0 :(得分:3)

由于您可以设置'this',因此可以设置您调用的任何函数的范围,允许您使用函数闭包执行一些有趣的操作。这就是大多数JS框架允许您更自然地执行面向对象的类行为的方式。当您拥有事件侦听器并且想要设置侦听功能的范围时,这尤其有用。

答案 1 :(得分:1)

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

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

同时也要考虑这一点。

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