zoukankan      html  css  js  c++  java
  • javaScript中的 call 和 apply

    call 和apply都可以实现函数的调用

        // 普通函数的调用
        function foo() {
            console.log('foo');
        }
        foo(); // foo
        foo.call(); // foo
        foo.apply(); // foo
    // ===========================
        // 带参数的普通函数的调用
        function foo(a,b) {
            console.log(a+b);
        }
        foo(1,2); // 2
        foo.call(null,3,4); // 7
        foo.apply(null,[5,6]); // 11
    
    

    改变函数内部的this指向

    
        // 改变this指向
        var fn = function () {
            console.log(this.userName)
        }
        fn(); // undefined 函数内部的this为windon
        window.userName = '李四';
        fn(); // 李四 函数内部的this为windon
    
        var obj = {
            userName: '张三'
        }
        fn.call(obj); // 张三, 这里就改变了函数内部的this,this为当前传进去的obj
        var obj2 = {
            userName: '老王'
        }
        fn.apply(obj2); // 老王, 和call一样,就是参数不同,这里没有参数
    
  • 相关阅读:
    Joda-Time 简介
    SimpleDateFormat 的线程安全问题
    SimpleDateFormat 的线程安全问题
    自定义类加载器
    自定义类加载器
    javap与 i++,++i
    javap与 i++,++i
    I/O模型
    I/O模型
    逻辑运算符(上) ---没用
  • 原文地址:https://www.cnblogs.com/ybixian/p/9458111.html
Copyright © 2011-2022 走看看