JS this关键字的五种不同指向和作用,实例详解

this关键字

JavaScript中,this关键字的指向,或者说是作用,取决于this关键字被使用的具体位置。常见的其中五种,如下:

  • 在JavaScript的对象方法中,this指向方法的所有者,即对象本身;
  • this在单独使用的时候,指向全局对象,比如,在浏览器窗口中全局对象为[object window];
  • 在函数内部,this也指向全局对象;
  • this在函数的严格模式use strict的模式下,指向undefined;
  • 在HTML的事件之中,this指向接收事件的HTML元素;

在对象方法中的this实例代码,及在线编辑器

<script>
  var student = {
    name:'xiaoming',
    id:1,
    math_score:98,
    computer_score:99,
    all_score:function(){
      return this.math_score + this.computer_score
    } 
  }
  
  alert(student.all_score())
</script>

单独使用this实例

<script>
  var wd = this
  alert(wd.outerWidth)
</script>
实例代码提示

因为this单独使用,指向object window,所以,可以通过对象的outerWidth属性来获取当前屏幕的宽度。


this在函数中使用的实例

<script>
  function windowarea(){
    return this.outerWidth + ' x '+this.outerHeight
  }
  alert(windowarea())
</script>
实例代码解析

如上代码,设计了一个返回电脑屏幕尺寸(像素)的函数,其中的this直接指向当前的window对象,其中outerHeight属性用于返回当前屏幕的高度。


this在函数的严格模式下使用实例

在严格模式下,函数内的this指向undefined:

<script>
  function func1(){
    "use strict"
    return this
  }
  alert(func1())
</script>

this在事件中使用

this在HTML文档的事件中使用,可以指向接受事件的元素本身,下方的实例将通过按钮的点击事件获取按钮的id,这有什么用呢,比如当很多按钮都使用同一个onclick点击的函数,那要怎么判断那么多按钮中是哪个被点击呢,这时候就可以使用this来传递参数了:

<button id='hello' onclick='getID(this.id)'>获取ID</button>
<script>
  function getID( arg ){
    alert(arg)
  }
</script>

全栈前端 / JavaScript语法 :





















Copyright © 2022-2024 笨鸟工具 x1y1z1.com All Rights Reserved.