5

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

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

4

2 回答 2

3

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

于 2012-05-24T21:04:16.983 回答
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

于 2012-05-24T21:08:28.143 回答