欢迎来到 wabc.cc 官方网站!

this四种调用模式及问题总结(广州中软卓越)

来源:推荐文章 / 时间:2025-12-20

this关键字,本意:这个、这里的意思。在JavaScript中是指每一个方法或函数都会有一个this对象,this对象是方法(或函数)在执行时的那个环境,也可以说是这个函数在那个作用域下运行的。一共有四种调用模式:方法调用模式(对象属性模式)、函数调用模式(就是普通的函数执行)、构造调用模式(应该叫实例上的方法模式更好)和apply调用模式。今天中软卓越广州html5培训课程来讲讲this四种调用模式及问题总结。

1531291362456265.jpg

1、直接调用模式

var foo = function(){

    console.log(this)

};

// 如果一个函数,是直接调用,与任何对象都没有关系时,这个调用,就是函数调用

// 函数调用模式中:this指的就是window

foo();  //  window

2、方法调用模式(对象内部)

var obj = {

    foo:function(){            console.log(this)

        }

}

// 如果一个函数,是作为某个对象一个方法调用的(与某象相关联),那么这种调用,就属于方法调用

// 方法调用模式中:this就指向了当前调用的对象

obj.foo();  // obj

3、构造函数调用模式

var Person = function(){

    this.foo = function(){

         console.log(this);

     }

};

// 如果一个函数是配合new运算符,来使用的,那么该种就属于,构造函数调用

// 构造函数调用模式中:this指向new创建出来的新对象

var p = new Person();

p.foo();    // p

4、上下文调用模式,也称借用方法

call/apply/bind 可以动态改变this的指向

var x = 100;

function fun(){

    console.log(this.x);

}

var obj = {};

obj.x = 200;

obj.fun = fun;

// 上下文调用模式中:this指向第一个参数,如果为空指向window

obj.fun.apply();         // 100    100是window中的x,说明this指向window

obj.fun.apply(obj);    // 200    200是obj中的x,说明this指向的是obj对象

5、this的问题的总结

遇到this指向问题时,先看有没有call、apply、bind

如果有,那么this指向 call、apply、bind 中第一个参数

如果没有,分析this所处的函数,究竟属于那种函数:

① 普通函数:this指向 window

② 对象内部方法:this指向对象

③ 构造函数:this指向该构造函数实例出来的新对象

关于JS中的this四种调用模式及问题总结已经讲解完毕了。去企业,学习企业需要的编程技能!广州中软卓越html5培训,真实企业背景,送你企业入场券!

广州中软卓越课程:http://gzetc.com.cn/

相关产品

在线客服
微信联系
客服
扫码加微信(手机同号)
电话咨询
返回顶部