zoukankan      html  css  js  c++  java
  • js的call()方法

            // ① 当函数中没有this时,call()、apply()和直接执行没有区别
            function fn(){
                console.log("aaa")
            }
            fn()    // aaa
            fn.call()    // aaa     ----fn是函数,函数也是对象,对象调用call()方法
            fn.apply()   // aaa
            // ② call改变this指向,this由原来的指向改为指向小括号内的对象
            function fn(){
                this.a=1;
                this.b=2;
            }
            var obj={};
            fn.call(obj)    // fn()函数执行的时候,this是window,也就是给window添加了两个全局变量。这里用call改变了this指向,this由原来的window指向了obj,也就是说,这里的fn()函数执行的时候,其实是执行了obj.a=1;obj.b=2
            console.log(obj)    // {a: 1, b: 2}
            // ③ call()传参是一个一个地传,apply()是第二个参数为一个数组
            function fn(name,age){
                this.name=name;
                this.age=age;
            }
            var obj={};
            fn.call(obj,"wql",23);
            console.log(obj)    // {name: "wql", age: 23}
  • 相关阅读:
    OpenGL3:先导篇 数据类型
    Linux开发:同步与异步
    前端面试题
    工具
    API和DLL
    CSS了一个浮动导航条
    AJAX背景技术介绍
    2014年8月18日17:02:53
    怎么增加照片的KB大小
    HTML5增加的几个新的标签
  • 原文地址:https://www.cnblogs.com/wuqilang/p/11938667.html
Copyright © 2011-2022 走看看