• 面试题记录1


    面试题1:

    function f(s){      
        console.log(this.a,s);  //因为是apply,则为obj.f调用函数,那么this指的是obj,  则输出a为2;s接收的是arguments里面的参数3,则s为3;
        return this.a + s;    
    }
    var obj = {
        a:2
    }
    var f2 = function(){   //无形参接收   arguments:['0':3]
        //return f.call(obj,...arguments);   //call作用也是使对象调用函数,但是传过去的是整个arguments,不是单单的数字3,所以用扩展符(相当于数组展开)
    return f.apply(obj,arguments); //两个return效果一样,apply作用就是使obj对象调用函数 }
    var b = f2(3); //因为函数f2()没有形参接收,所以3存放到arguments中 console.log(b); //5

    面试题2:

    var n=123;
    function f1(){
       console.log(n);     //123
    }
    
    function f2(){
        var n=456;
        f1();     //作用域是window
    }
    f2();
    console.log(n)     //123

    面试题3:

    var length = 100;
    function f1(){
       console.log(this.length);   //作用域是window
    }
    var obj = {
       x:10;
       f2:function(f1){
            f1();        输出100
            arguments[0]();   arguments是数组,传过来的两个参数,那么arguments[0]就是f1 ,那么此时调用f1(),此时作用域是arguments,求数组长度,输出2
       }
    }
    
    obj.f2(f1,1)   //两个实参     输出100  2
  • 相关阅读:
    洛谷P2762 太空飞行计划问题
    网络流24题 gay题报告
    洛谷P1712 区间
    洛谷P2480 古代猪文
    10.9zuoye
    面向对象类编程,计算分数
    请输入验证码优化版
    面向对象式开发程序
    直接选择排序与反转排序
    随机数产生原理
  • 原文地址:https://www.cnblogs.com/cccaroline/p/13387090.html
Copyright © 2020-2023  润新知