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

 

目录
相关文章
|
6月前
|
Python
apply函数的用法
apply是pandas处理数据经常用到的函数。我们可以用DataFrame的apply函数实现对多列、多行的操作。可通过axis设置参数,设为1是对列进行操作,参数axis设为0是对行操作。apply经常跟lambda一起使用,非常方便,大大提高了效率。
|
4月前
|
JavaScript 前端开发
call函数和apply函数的区别
call函数和apply函数的区别
19 0
|
7月前
|
Web App开发 API 开发者
关于 SAP UI5 Context.prototype.delete 方法的输入参数 Group ID 的细节
关于 SAP UI5 Context.prototype.delete 方法的输入参数 Group ID 的细节
60 0
|
8月前
|
JavaScript 前端开发
call和apply与this的关系
call和apply与this的关系
29 0
|
9月前
|
前端开发
|
10月前
|
JavaScript 前端开发
关于 this 指向、如何实现 new call apply bind 我所知道的
关于 this 指向、如何实现 new call apply bind 我所知道的
58 0
|
11月前
|
JavaScript 算法
js中函数内部属性arguments和this以及方法apply()和call()
js中函数内部属性arguments和this以及方法apply()和call()
|
前端开发
前端学习案例1-call,apply的重用
前端学习案例1-call,apply的重用
53 0
前端学习案例1-call,apply的重用
|
前端开发
前端小案例1-call和apply的重写1 原
前端小案例1-call和apply的重写1 原
55 0
前端小案例1-call和apply的重写1 原
|
JavaScript
一步一步实现call和apply方法,超简单!
前言 this 指向问题一直是一个老生常谈的问题了!我们对它可以说是又爱又恨,因为 this 指向常常没有按照我们的想法去指向谁,导致程序无缘出现许多 bug。所以我们常常直接强制改变程序中的 this 指向,我们常用的方法有 bind、apply 和 call,bind 与其它两个稍许不同,所以我们本篇文章专门讲解 call 和 apply 方法,并且手动模拟实现它们。
128 0
一步一步实现call和apply方法,超简单!