首页 > 编程语言 > 详细

JavaScript中this

时间:2015-09-01 12:29:32      阅读:148      评论:0      收藏:0      [点我收藏+]

全局this

浏览器宿主的全局环境中,this指的是window对象。

<script type="text/javascript">

  console.log(this === window); //true

</script>

浏览器中在全局环境下,使用var声明变量其实就是赋值给thiswindow

<script type="text/javascript">

  var foo = "bar";

  console.log(this.foo); //logs "bar" console.log(window.foo); //logs "bar"

</script>

任何情况下,创建变量时没有使用var或者let(ECMAScript 6),也是在操作全局this

<script type="text/javascript">

  foo = "bar";

  function testThis() {

    foo = "foo";

  }

  console.log(this.foo); //logs "bar" testThis();

  console.log(this.foo); //logs "foo"

</script>

除了DOM的事件回调或者提供了执行上下文(后面会提到)的情况,函数正常被调用(不带new)时,里面的this指向的是全局作用域。

<script type="text/javascript">

foo = "bar";

  function testThis() {

    this.foo = "foo";

  }

  console.log(this.foo); //logs "bar"

  testThis();

  console.log(this.foo); //logs "foo"

</script>

 

JavaScript中this

原文:http://www.cnblogs.com/zhaoleigege/p/4775305.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!