JS知识整理之 Call&Apply方法

JavaScript中的函数也是对象,和其他JS对象一样也可以包含方法,其中Call和Apply就是其中比较重要的方法,可以用来间接的调用函数。这两个方法允许显式制定调用所需的this值,也就是说所有函数可以作为任何对象的方法来使用,哪怕这个函数不是那个对象的方法。

Call方法:
语法:call([thisObj[,arg1[, arg2[,   [,.argN]]]]])
Apply方法:

语法:apply([thisObj[,argArray]])

Call和Apply方法作用相同,但从以上语法来看,他们传入的参数方式不同,两个方法第一个参数都是需要调用方法的对象(thisObj),函数所需要的实参Call方法是以列表形式传入,而Apply方法则需要以数组形式传入实参。

实例:

 1         function People(name, age) {
 2
 3             this.name = name;
 4             this.age = age;
 5             this.showName = function () {
 6
 7                 console.log(this.name);
 8
 9             }
10         }
11
12
13         function Student(name, age) {
14
15             this.name = name;
16             this.age = age;
17             this.showAge = function () {
18
19                 console.log(this.age);
20             }
21         }
22
23
24             var people = new People("peopleName", 20);
25             var student = new Student("studentName", 10);
26
27             people.showName.call(student);//输出studentName

在以上代码中,同样可以使用people.showName.apply(student),输出结果还是studentName。

JS知识整理之 Call&Apply方法

时间: 2024-08-23 19:22:40

JS知识整理之 Call&Apply方法的相关文章

【js插件进阶】JS中的call()和apply()方法详解

JS中的call()和apply()方法 1.方法定义 call方法: 语法:call([thisObj[,arg1[, arg2[,   [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象. 说明: call 方法可以用来代替另一个对象调用一个方法.call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象. 如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj. apply方法: 语法:apply(

JS中的call()和apply()方法

转载自:http://uule.iteye.com/blog/1158829 1.方法定义 call方法: 语法:call([thisObj[,arg1[, arg2[,   [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象. 说明: call 方法可以用来代替另一个对象调用一个方法.call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象. 如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj.

【转】JS中的call()和apply()方法

原文:http://uule.iteye.com/blog/1158829 1.方法定义 call方法: 语法:call([thisObj[,arg1[, arg2[,   [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象. 说明: call 方法可以用来代替另一个对象调用一个方法.call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象. 如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj. a

JS中的call()和apply()方法理解和使用

1.方法定义call方法: 语法:obj.method.call(thisObj[,arg1[, arg2[, [,.argN]]]]) 定义:调用对象(obj)的一个方法(method),以另一个对象(thisObj)替换当前对象(obj). 说明: call 方法可以用来代替另一个对象调用一个方法.call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象(方法内的this的指向传入的thisObj) . 如果没有提供 thisObj 参数,那么 Global

JS中的call()和apply()方法(转)

1.方法定义 call方法: 语法:call([thisObj[,arg1[, arg2[,   [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象. 说明: call 方法可以用来代替另一个对象调用一个方法.call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象. 如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj. apply方法: 语法:apply([thisObj[,argArray]])

5.JS中的call()和apply()方法

1.方法定义 call方法: 语法:call([thisObj[,arg1[, arg2[,   [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象. 说明: call 方法可以用来代替另一个对象调用一个方法.call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象. 如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj. apply方法: 语法:apply([thisObj[,argArray]])

JS中的call()和apply()方法区别

如 果没接触过动态语言,以编译型语言的思维方式去理解javaScript将会有种神奇而怪异的感觉,因为意识上往往不可能的事偏偏就发生了,甚至觉得不可 理喻.如果在学JavaScript这自由而变幻无穷的语言过程中遇到这种感觉,那么就从现在形始,请放下的您的”偏见”,因为这对您来说绝对是一片新大 陆,让JavaScrip 好,言归正传,先理解JavaScrtipt动态变换运行时上下文特性,这种特性主要就体现在apply, call两个方法的运用上. 区分apply,call就一句话, foo.ca

js中的call和apply方法的区别

一.call和apply的说明 1.call,apply都属于Function.prototype的一个方法,它是JavaScript引擎内在实现的,因为属于Function.prototype,所以每个Function对象实例(就是每个方法)都有call,apply属性.既然作为方法的属性,那它们的使用就当然是针对方法的了,这两个方法是容易混淆的,因为它们的作用一样,只是使用方式不同. 2.语法:foo.call(this, arg1,arg2,arg3) == foo.apply(this,

JS知识整理随笔(8) BOM

BOM(browser object model) 浏览器对象模型 BOM 对象 window navigator screen history location document event window window是浏览器的一个实例,在浏览器中,window对象有双重角色,它既是通过JavaScript访问浏览器的窗口的一个借口,又是ECMAScript规定Global(全局)对象 window.alert("content")  显示带有一段消息和一个确认按钮的警告框 wind