javascript方法 call()和apply()的用法

先上代码

apply()方法示例

/*定义一个人类*/
function Person(name,age) {
     this.name=name;
     this.age=age;
}
/*定义一个学生类*/
function Student(name,age,grade) {
    Person.apply(this,arguments);  //arguments即["zhangsan", 21, "一年级"]
    this.grade=grade;
}
//创建一个学生类的实例
var student=new Student("zhangsan",21,"一年级");
//测试
console.log("name:"+student.name+"\n"+"age:"+student.age+"\n"+"grade:"+student.grade);  

/*
结果输出:
  name:zhangsan
  age:21
  grade:一年级
*/

call()方法示例-1:

/*定义一个人类*/
function Person(name,age) {
     this.name=name;
     this.age=age;
}
/*定义一个学生类*/
function Student(name,age,grade) {
    Person.call(this,name,age);
    this.grade=grade;
}
//创建一个学生类的实例
var student=new Student("zhangsan",21,"一年级");
//测试
console.log("name:"+student.name+"\n"+"age:"+student.age+"\n"+"grade:"+student.grade);
/*
结果输出:
  name:zhangsan
  age:21
  grade:一年级
*/

call()方法示例-2:

/*定义一个人类*/
function Person(name,age) {
     this.name=name;
     this.age=age;
}
/*定义一个学生类*/
function Student(name,age,grade) {
    Person.call(this,name);
    this.grade=grade;
}
//创建一个学生类的实例
var student=new Student("zhangsan",21,"一年级");
//测试
console.log("name:"+student.name+"\n"+"age:"+student.age+"\n"+"grade:"+student.grade);
/*
结果输出:
  name:zhangsan
  age:undefined
  grade:一年级
*/
时间: 2024-08-28 11:07:12

javascript方法 call()和apply()的用法的相关文章

Javascript中call()和apply()的用法 ----2

前言 call 和 apply 都是为了改变某个函数运行时的 context 即上下文而存在的,换句话说,就是为了改变函数体内部 this 的指向.call 和 apply二者的作用完全一样,只是接受参数的方式不太一样. 方法定义applyFunction.apply(obj,args)方法能接收两个参数: obj:这个对象将代替Function类里this对象 args:这个是数组或类数组,apply方法把这个集合中的元素作为参数传递给被调用的函数. call call方法与apply方法的第

JavaScript方法——call和apply

1.相同点: a) 产生的效果或作用完全相同: b) 至少有一个参数: c) 第一个参数必须有且是一个对象(Object),因为就是这个家伙偷懒. 2.不同点: 传递参数的方式. 前提: 1.有两个对象: A和B: 2.B有一个方法(这里用Function代替): 3.B的方法(Function)有两种参数传递的方式,但该方法产生的结果一样. 一种是除第一个参数外,其余的参数都打包进一个数组内,即B.Function.apply(A,args): 另一种是所有的参数都以各自的形式单独存在(包括第

【JAVASCRIPT】call和apply的用法以及区别

function add(c,d){ return this.a + this.b + c + d; } var s = {a:"鸡", b:"你"}; console.log(add.call(s,"太","美")); // 鸡你太美 console.log(add.apply(s,["太","美"])); // 鸡你太美 两者区别: call(this,1,2,3,4):一个是函数运

javascript 中call,apply的用法

call跟apply说白来,就是把另外一个对象的this,传给当前对象的this ,但是apply跟call的区别是在传入参数的区别,他们两第一参数都是另外一个对象,第二个参数就不同来, var walk = new function(){this.road = "yuhua road"}; var newwalkman = function (roadname){ var road = "xinhua road"; alert(this.road); alert(

Effective JavaScript Item 21 使用apply方法调用函数以传入可变参数列表

本系列作为Effective JavaScript的读书笔记. 下面是一个拥有可变参数列表的方法的典型例子: average(1, 2, 3); // 2 average(1); // 1 average(3, 1, 4, 1, 5, 9, 2, 6, 5); // 4 average(2, 7, 1, 8, 2, 8, 1, 8); // 4.625 而以下则是一个只接受一个数组作为参数的例子: averageOfArray([1, 2, 3]); // 2 averageOfArray([1

面试官:能解释一下javascript中bind、apply和call这三个函数的用法吗

一.前言    不知道大家还记不记得前几篇的文章:<面试官:能解释一下javascript中的this吗> 那今天这篇文章虽然是介绍javascript中bind.apply和call函数,但是多少也和this有点关联. 假如在前面那场面试末尾,面试官不依不饶继续问你javascript中的this,那看完本篇文章后一定还会有收获. (本篇文章不会站在this的角度去回答问题,而是重于解释bind.apply和call这三个函数的用法和使用场景) 二.正戏开始 面试官:能解释一下javascr

javascript中call和apply方法

转:http://www.cnblogs.com/ArthurPatten/p/3335912.html 我们可以将call和apply看做是某个对象的方法,通过调用方法的形式来间接调用函数.call和apply的第一个实参是要调用函数的母对象,它是调用上下文,在函数体内通过this来获得对它的引用. 例如,如果要想以对象o的方法来调用函数f,可以按如下的方式使用call和apply方法: f.call(o); f.apply(o); 可以按如下的代码来理解: o.m = f; //将f存储为o

JavaScript里call,apply,bind方法简介

JavaScript里call,apply,bind方法不太容易理解,其实背后的思想并不算非常复杂,希望本文能帮你更好地了解这3个很像,而且看似很神秘的方法. 非要用一个关键字来点明它们的背后思想的精髓的话,关键字就是:this 因为通常程序员对C++比较熟,先借用C++,简单说一下this. 类的成员函数里,都可以用this来访问当前类的成员,但问题是成员函数的参数并没有this这个参数,比如: Animal a; a.eat(); a.eat("meat"); Animal的对象调

JavaScript方法归纳及用法

JavaScript方法归纳: 一.    Array(): 1. shift():删除第一个元素,返回删除的值. 示例: <script> function b(a){ document.write(a + "<br/>"); } var a = [8,2,3,4,5]; var shift = a.shift(); b(shift); b(a.length); } </script> 2.pop():删除最后一个元素,返回删除的值.