zoukankan      html  css  js  c++  java
  • 一些小知识点-慢慢更新

    call/apply

    他俩都是修改函数内部的this指向的,只是call传递的参数是N个字符串,apply传递一个数组.
    小技巧:

    1.追加数组

    var array1 = [12 , "foo" , {name "Joe"} , -2458];
    var array2 = ["Doe" , 555 , 100];
    方法一:array1.concat(array2);//常用方法
    方法二: Array.prototype.push.apply(array1 , array2);//apply方法
    
    

    2.获取数组最大/小值

    var numbers = [5, 458 , 120 , -215 ];
    Math.max.apply(Math,numbers);//使numbers也可以使用Math对象下的max方法
    
    

    3.伪数组,eg.dom元素集(虽然长的像是数组,但是本身没有数组的方法),例如:

    Array.prototype.forEach.call(els,function(item,index,array){
    	console.log(item)
    });//使用Array对象的forEach方法(els是所获取的dom数组)
    
    var domNodes = Array.prototype.slice.call(document.getElementsByTagName("*"));//伪数组应用Array下的所有方法,这样就可
    以随便使用它上的方法啦
    
    

    4.打印不确定个数的参数

    function log(msg) {
        console.log.apply(console, arguments);
    }
    log(1); //1
    log(1,2); //1 2
    
    

    5.call/apply/bind

    var obj = {
        x: 81,
    };
    
    var foo = {
        getX: function() {
            return this.x;
        }
    }
    
    console.log(foo.getX.bind(obj)()); //81 非立即执行
    console.log(foo.getX.call(obj)); //81 立即执行
    console.log(foo.getX.apply(obj)); //81 立即执行
    
  • 相关阅读:
    ssh图示+hibernate图示
    spring Transactional
    Spring datasource
    sqlloader导入数据
    Spring Aop Annotation(@Pointcut)
    ajax传输文件+检验
    Spring Aop Annotation
    JDK的动态代理
    nginx代理gitlab
    python相关
  • 原文地址:https://www.cnblogs.com/geekfeier/p/7721936.html
Copyright © 2011-2022 走看看