前端技术

JavaScript 中四种函数的调用模式

一、函数执行模式

function add() {
  console.log(this);
}
add();
  • 只要是函数执行模式,函数中的 this 指向 window

二、对象方法调用模式

function Add() {
  this.show = function() {
    console.log(this);
  }
}
var a = new Add();
a.show(); // 对象调用自己的方法
  • this 指向 a 对象;
  • 所有的事件响应的方法都是对象方法调用模式(如 load,resize,click等所有事件)。

三、构造器调用模式

function Add() {
  this.show = function() {
    console.log(this);
  }
}
var a = new Add();
  • this 指向构造出来的对象 a
  • 与前一种的区别,前一种是对象调用自己的方法,这是通过构造器调用。

四、Call 和 Apply 调用模式

function add(a, b) {
  this.result = a + b;
}
var p = {}; // 定义一个空对象
add.call(p,3,6); // 在这个方法调用的时候,this 指向了p
console.log(p.result);

// apply 和 call 是同样的用法,只不过 apply第二个参数用数组进行传递。

PUJI Design 朴及设计 (c) 2024. 沪ICP备17052229号