Js语言中Call方法和Apply方法

 1     <script type="text/javascript">
 2         // Call方法:
 3         // 语法:call(thisObj[,arg1,arg2,...,argN])
 4         // 定义:调用对象的一个方法,用另一个对象替换当前对象
 5
 6         // Apply方法:
 7         // 语法:apply([thisObj,argArray])
 8         // 定义:应用某一个对象的一个方法,用另一个对象替换当前对象
 9
10         //a,
11         function add (a,b) {
12             alert(a+b);
13         }
14         function sub(a,b){
15             alert(a-b);
16         }
17         add.call(sub,3,1);
18         用add来替换sub,add.call(sub,3,1)==add(3,1),结果是alert(4);
19         //b,
20         function Animal(){
21             this.name="Animal";
22             this.showName=function(){
23                 alert(this.name);
24             }
25         }
26         function Cat(){
27             this.name="Cat";
28         }
29         var animal=new Animal();
30         var cat=new Cat();
31
32         animal.showName.call(cat);
33         // 通过call或者apply方法,将原本属于Animal对象的showName()方法交给对象cat来使用。结果为alert("Cat");
34         //c,可以实现继承。
35         function Animal(name){
36             this.name=name;
37             this.showName=function(){
38                 alert(this.name);
39             }
40         }
41         function Cat(name){
42             Animal.call(this,name);
43         }
44         var cat=new Cat("Black Cat");
45         cat.showName();
46         //Animal.call(this)的意思是使用Animal对象代替this对象,那么Cat中就有了Animal的所有方法和属性了,Cat对象就能直接调用Animal的方法和属性了。
47         //d,多重继承
48         function Class10(){
49             this.showSub=function(a,b){
50                 alert(a-b);
51             }
52         }
53         function Class11(){
54             this.showAdd=function(a,b){
55                 alert(a+b);
56             }
57         }
58         function Class2(){
59             Class10.call(this);
60             Class11.call(this);
61         }
62         //使用两个call就实现多继承了。
63
64         call和apply的区别在于call的第二个参数可以是任意类型,而apply的第二个参数必须是数组或者arguments
65     </script>
时间: 2024-11-06 20:32:26

Js语言中Call方法和Apply方法的相关文章

JS中的call()方法和apply()方法用法总结

JS中的call()方法和apply()方法用法总结  : 参考   :     https://blog.csdn.net/ganyingxie123456/article/details/70855586 原文地址:https://www.cnblogs.com/wfblog/p/9169026.html

[转] JS中的call()方法和apply()方法用法总结

//例1 <script> window.color = 'red'; document.color = 'yellow'; var s1 = {color: 'blue' }; function changeColor(){ console.log(this.color); } changeColor.call(); //red (默认传递参数) changeColor.call(window); //red changeColor.call(document); //yellow chan

Javascript中call方法和apply方法用法和区别

第一次在博客园上面写博客,知识因为看书的时候发现了一些有意思的知识,顺便查了一下资料,就发到博客上来了,希望对大家有点帮助. 连续几天阅读<javascript高级程序设计>这本书了,逐渐发现了以前很多自己完全没有用过甚至见过的神奇知识点.今天在阅读到有关函数的属性和方法的时候,略感高级,于是乎,查阅了不少他人的博客,在此总结一下这两个方法的以下几个方面: 1.call()和apply()的作用和用法 2.什么时候用apply(),什么时候用call() 书上提到,每个函数都包含两个非继承而来

函数的call()方法和apply()方法

阅读各种框架的源码apply和call方法肯定经常看到,好好理解一下概念至关重要. JavaScript中的函数也是对象,和其他JavaScript对象没什么两样,函数对象也可以包含方法.其中的call()方法和apply()方法可以间接调用函数.两个方法都允许显式指定调用所需的this值,也就是说,任何函数都可以作为任何对象的方法来调用,哪怕这个函数不是那个对象的方法. 两个方法都可以指定调用的实参.call()方法使用它自有的实参列表作为函数的实参,apply()方法则要求以数组的形式传入参

call()方法和apply()方法用法总结

1. 每个函数都包含两个非继承而来的方法:call()方法和apply()方法. 2. 相同点:这两个方法的作用是一样的. 都是在特定的作用域中调用函数,等于设置函数体内this对象的值,以扩充函数赖以运行的作用域. 一般来说,this总是指向调用某个方法的对象,但是使用call()和apply()方法时,就会改变this的指向. call()方法使用示例: //例1 <script> window.color = 'red'; document.color = 'yellow'; var s

call 方法和 apply方法

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

.call方法和.apply方法

.call 在方法后面加上.call.例: [].push.call(arr,"1","p") .call实现了.push方法的this指向([]-->arr),就相当于push方法作用与arr上了,后面的参数不变 .apply 在方法的后面加入.apply.例: [].push.apply(arr,["p","1"]) .apply方法实现了.push方法的this指向,使之作用于第一个参数arr上,把原先的参数用数组

jquery call方法和apply方法接触

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

javaScript的难度开头---使用call方法和apply方法

javaScript  的组合继承 1,使用  call  方法 定义:调用一个对象的一个方法,以另一个对象替换当前对象. <!DOCTYPE html> <html> <head> <title>借用构造函数</title> <meta name="keywords" content="keyword1,keyword2,keyword3"> <meta name="descr