• call和apply的使用


    call和apply的作用1:调用方法,和直接调用的效果是一样的

    function test() {
        console.log('test')  
    }
    
    test()  // test
    test.call()  // test
    test.apply() // test

    call和apply的作用2:改变this的指向

    call和apply传入的第一个参数,把参数的this指向这个传入的实参

    test(){
        console.log(this)  
    }
    
    var obj = {name:'zs'}
    test()  // this指向window
    test.call(obj)  // this指向obj
    test.apply(obj)  // this指向obj

    call和apply可以传入其他参数(非第一个参数),传参方式不同

    call传入的其他参数,直接传。apply需要传数组

    test(a,b){
        console.log(a)
        console.log(b)
    }
    
    var obj =  {name:'zs'}
    
    test.call(obj,2,3)   // call直接传2和3,打印2 ,3
    test.apply(obj,[2,3])  // apply传数组,打印2,3

    call的实际用法:

    获取来的dom元素,不具有数组的特性,不能使用数组的方法,例如pop,push等

    可以通过一个方法把获取来的dom元素转换成数组,使它可以使用数组的方法

    Array.prototype.slice.call(document.querySelector('div'))

    这样获取的dom元素就是一个数组,可以使用数组的方法

  • 相关阅读:
    SQLyog
    远程连接设置
    [转]Oracle/Altibase数据库中Sequence的用法
    worklight 初识
    C# Excel
    C#+AE 叠加分析
    Model Buider中 List和Series的区别[转]
    动态分段
    优化工具箱概述
    创建栅格数据
  • 原文地址:https://www.cnblogs.com/luguankun/p/12494411.html
Copyright © 2020-2023  润新知