zoukankan      html  css  js  c++  java
  • call和apply的使用

    <!DOCTYPE html>
    <html>
    
        <head>
            <meta charset="UTF-8">
            <title>call和apply的使用</title>
        </head>
    
        <body>
            <p>关于 JavaScript 中 apply 和 call 方法的区别</p>
            <p>
                如果没接触过动态语言,以编译型语言的思维方式去理解 JavaScript 将会有种非常神奇而怪异的感觉,因为意识 上往往不可能的事,
           偏偏就在 js 中发生了,甚至会觉得 无法理喻,如果在 JavaScript 这自由而变幻无穷的语言 中遇到这种感觉,那么就从现在开始,
           放下你的"偏见",因为 这对你来说绝对是一片新大陆 理解 JavaScript 动态变换运行时上下文特性,这种特性 主要体现在 apply 和
           call 这两个方法的应用上 区别 apply 跟 call 就一句话 fun.call(this,arg1,arg2,arg3) == fun.apply(this,arguments) == fun.apply(this,[arg1,arg2,arg3])
    </p> <p> call,apply都是属于Function.prototype的一个 方法,是 JavaScript 引擎内在实现的,因为属于 Function.prototype,
           所以每个 Function 都可以使用 call,apply属性,既然它们作为方法 的属性,那么它们的使用当然就是针对方法的了, 这两个方法是
           非常容易混淆的,因为他们的作用都是 一样的,只是使用方式不同 相同点: 两个方法产生的作用是完全一样的 不同点: 方法传递的参数不同
    </p> <p> call,apply作用就是借用别人的方法来调用,就 像在调用自己的方法一样 </p> </body> <script type="text/javascript"> function print(a, b, c, d) { alert(a + b + c + d); } function example(a, b, c, d) { // 用 call 方式借用 print,参数是打散传递的 // print.call(this,a,b,c,d); // 用 apply 方式借用print,参数作为一个数组 // 传递的,这里用的是JavaScript方法内本身 // 有的arguments数组 // print.apply(this, arguments); print.apply(this, [a, b, c, d]); } example('', '', '', ''); </script> </html>
  • 相关阅读:
    JS 数组及函数的应用
    JavaScript 基础知识点
    利用css布局效果图
    css 区块与盒子模型
    JS数组及函数的应用
    JavaScript基础
    近期总结12.30
    层叠样式与盒子模型
    PHP课后小结 2017.12.22
    PHP课后小结 12.20
  • 原文地址:https://www.cnblogs.com/zbly/p/10175576.html
Copyright © 2011-2022 走看看