前端学习笔记之this指向

    技术2025-12-05  11

    前端学习笔记之this指向

    JavaScript中的this单纯的函数调用作为对象方法的调用作为构造函数的调用call,apply等工具函数的调用

    JavaScript中的this

    this是JavaScript语言中的一个关键字。

    它是函数运行时,在函数体内部自动生成的一个对象,只能在函数体内部使用。

    总的来说,this就是函数运行时所在的环境对象。 函数不同的使用场景,this指向也会有所不同。

    以下是我学习到的几种不同场景下this指向的不同

    单纯的函数调用

    var x = 1; function show(){ console.log(this.x); } show(); // 1

    因为show函数,是全局函数,show函数运行时,this的环境对象是window,但是在严格模式下,this是undefined。

    作为对象方法的调用

    function show() { console.log(this.x); } var x = 1; var obj = {}; obj.x = 2; obj.m = show; obj.m(); // 2

    将show函数赋值给obj的m,show函数运行时,this的环境对象是obj。

    作为构造函数的调用

    var x = 2; function show() { this.x = 1; } var obj = new show(); obj.x; // 1 x; // 2

    所谓的构造函数,就是通过这个函数,生成一个新的对象。此时,this指向的是新的对象。 x的运行结果为2,表面全局变量x的值没有变。

    call,apply等工具函数的调用

    这些工具函数作用是改变函数的this指向。它的第一个参数就是改变后的调用这个函数的对象。因此,这里的this指的是第一个参数。

    var x = 0; function show() { console.log(this.x); } var obj = {}; obj.x = 1; obj.m = show; obj.m.show.apply() // 0

    apply()的参数为空时,默认调用全局对象(window),因此最后一行代码的运行结果为0。

    总结一句话,this用于访问当前方法所属的对象。

    本文的内容,学习自阮一峰的个人博客,智能社的blue老师的公开课视频。

    Processed: 0.008, SQL: 9