JavaScript中apply方法的用法详解与核心场景

作者:闭包旅人

时间:2026-10-24

浏览:345

本文深入解析JavaScript中apply方法的核心用法。通过实例演示如何利用apply实现单重与多重继承,详细阐述array参数转化为独立参数的传规机制,并对比分析this、null及对象作为上下文时的绑定差异,帮助开发者掌握apply在函数调用与上下文切换中的实际应用。

文章目录

JavaScript apply方法概述

本文通过具体实例对JavaScript中apply方法的用法及其常见应用场景进行总结,旨在为读者提供具有参考价值的技术分享。

apply方法的核心作用是将this关键字绑定到指定的函数或类上,或者更准确地说,是将函数或类的属性与方法转移至当前的执行作用域中。

利用apply实现继承

1. 利用apply方法实现继承


  function A(name, age){
   this.name = name;
   this.age = age;
  }
 
  function B(name, age, time){
   A.apply(this,[name]) //这里的name必须加上[]
  }
 
  const b = new B('继承');
  console.log(b)

2. 利用apply方法实现多重继承


function Class10(){
 this.showSub = function(a,b){
    alert(a - b);
  }  
}
 
function Class11(){
 this.showAdd = function(a,b){
    alert(a + b);
  } 
}
 
function Class12(){
 Class10.apply(this);
 Class11.apply(this);  
 // Class10.call(this);
 //Class11.call(this); 
}
 
var c2 = new Class12();
c2.showSub(3,1);  //2
c2.showAdd(3,1);  //4

apply方法的传参规则

3. apply方法在使用时的参数传递规则


fn.apply(this,array)

在函数执行过程中,传入的array参数会被拆解并逐个作为独立参数传递给目标函数fn。


fn.apply(this,[params1,params2,...])
//相当于
fn(params1,params2,...)//这里的this指向执行fn函数的作用域

this与null的绑定行为

4. apply方法中this关键字与null值的绑定行为差异


  function C(name, age){
   console.log(this.name)
  }
 
  var name = 'windowname'
  var myObject = {name:"myA",age:"myB"};
  C.apply(myObject) //myA
  C.apply(null)//windowname
 
   function D(){
   this.name = '我是D空间'
   C.apply(this)
  }
 
  D();//我是D空间

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun测试上述代码运行效果。

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章