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);
}

 

目录
相关文章
|
3月前
|
JavaScript 前端开发
call和apply的区别
call和apply的区别
|
3月前
call()与apply()的作用与区别?
call()与apply()的作用与区别?
|
4月前
call()与apply()的作用与区别
call()与apply()的作用与区别
26 1
|
4月前
|
JavaScript 前端开发
call函数和apply函数的区别
call函数和apply函数的区别
43 0
|
12月前
|
Web App开发 API 开发者
关于 SAP UI5 Context.prototype.delete 方法的输入参数 Group ID 的细节
关于 SAP UI5 Context.prototype.delete 方法的输入参数 Group ID 的细节
|
JavaScript 前端开发
call和apply与this的关系
call和apply与this的关系
40 0
|
Python
FastAPI(35)- 依赖项中使用 yield + Context Manager 上下文管理器
FastAPI(35)- 依赖项中使用 yield + Context Manager 上下文管理器
311 0
|
JavaScript 前端开发
关于 this 指向、如何实现 new call apply bind 我所知道的
关于 this 指向、如何实现 new call apply bind 我所知道的
73 0
|
JavaScript 算法
js中函数内部属性arguments和this以及方法apply()和call()
js中函数内部属性arguments和this以及方法apply()和call()
|
前端开发
前端学习案例1-call,apply的重用
前端学习案例1-call,apply的重用
69 0
前端学习案例1-call,apply的重用