jquery call方法和apply方法接触

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

apply方法: 
语法:apply([thisObj[,argArray]]) 
定义:应用某一对象的一个方法,用另一个对象替换当前对象。 
说明: 
如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。 
如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。

    <script language="javascript"><!--

    /**定义一个animal类*/
    function Animal(){
        this.name = "Animal";
        this.showName = function(){
            alert(this.name);
        }
    }
    /**定义一个Cat类*/
    function Cat(){
        this.name = "Cat";
    }   

    /**创建两个类对象*/
    var animal = new Animal();
    var cat = new Cat();   

    //通过call或apply方法,将原本属于Animal对象的showName()方法交给当前对象cat来使用了。
    //输入结果为"Cat"
    animal.showName.call(cat,",");
    //animal.showName.apply(cat,[]);   

// --></script> 

以上代码无论是采用animal.showName.call或是animal.showName.apply方法,运行的结果都是输出一个"Cat"的字符串。说明showName方法的调用者被换成了cat对象,而不是最初定义它的animal了。这就是call和apply方法的妙用!

转摘:http://blog.csdn.net/hackerhope/article/details/6174895

时间: 2024-10-09 06:16:15

jquery call方法和apply方法接触的相关文章

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

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

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

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

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

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

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

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

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) {

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上,把原先的参数用数组

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

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

jquery attr方法和prop方法获取input的checked属性问题

问题:经常使用jQuery插件的attr方法获取checked属性值,获取的值的大小为未定义,此时可以用prop方法获取其真实值,下面介绍这两种方法的区别: 1.通过prop方法获取checked属性,获取的checked返回值为boolean,选中为true,否则为flase <input type="checkbox" id="selectAll" onclick="checkAll()">全选 function checkAll