call()和apply()方法(切换上下文)

简介: call方法: 语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象。 apply方法: 语法:apply([thisObj[,argArray]]) 定义:应用某一对象的一个方法,用另一个对象替换当前对象。

call方法:
语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]])
定义:调用一个对象的一个方法,以另一个对象替换当前对象。


apply方法:
语法:apply([thisObj[,argArray]])
定义:应用某一对象的一个方法,用另一个对象替换当前对象。


适用于继承和多重继承

单继承
function Animal(name){
  this.name = name;
  this.showName = function(){
    alert(this.name);
  }
}

function Cat(name){
  Animal.call(this, name);
}

var cat = new Cat("Black Cat");
cat.showName();

多继承
function Class10()
{
  this.showSub = function(a,b)
  {
  alert(a-b);
  }
}

function Class11()
{
  this.showAdd = function(a,b)
  {
  alert(a+b);
  }
}

function Class2()
{
  Class10.call(this);
  Class11.call(this);
}

 

目录
相关文章
|
24天前
|
JavaScript 前端开发 开发者
call 方法和 apply 方法的区别是什么?
【10月更文挑战第26天】`call` 方法和 `apply` 方法的主要区别在于参数传递方式和使用场景。开发者可以根据具体的函数参数情况和代码的可读性、简洁性要求来选择使用 `call` 方法还是 `apply` 方法,以实现更高效、更易读的JavaScript代码。
28 2
|
6月前
|
JavaScript 前端开发
call和apply的区别
call和apply的区别
|
6月前
call()与apply()的作用与区别?
call()与apply()的作用与区别?
|
7月前
call()与apply()的作用与区别
call()与apply()的作用与区别
58 1
|
7月前
LabVIEW使用VI服务器的调用节点将数据传递到另一个VI 使用调用节点(Invoke Node)与通过引用调用节点(Call by Reference)调用VI时有什么差别?
LabVIEW使用VI服务器的调用节点将数据传递到另一个VI 使用调用节点(Invoke Node)与通过引用调用节点(Call by Reference)调用VI时有什么差别?
169 0
|
7月前
|
JavaScript 前端开发
call函数和apply函数的区别
call函数和apply函数的区别
55 0
|
JavaScript 前端开发
call和apply与this的关系
call和apply与this的关系
47 0
|
JavaScript 前端开发
关于 this 指向、如何实现 new call apply bind 我所知道的
关于 this 指向、如何实现 new call apply bind 我所知道的
81 0
|
JavaScript 算法
js中函数内部属性arguments和this以及方法apply()和call()
js中函数内部属性arguments和this以及方法apply()和call()
|
前端开发
前端小案例1-call和apply的重写1 原
前端小案例1-call和apply的重写1 原
77 0
前端小案例1-call和apply的重写1 原