zoukankan      html  css  js  c++  java
  • 面试题记录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
  • 相关阅读:
    软件对标分析
    第一阶段绩效评估
    自律小帮手:Alpha版使用说明
    团队 电梯演讲 原型展示
    意见评论
    Alpha版(内部测试版)发布
    意见汇总
    产品对比
    团队项目-第二阶段冲刺-3
    团队项目-第二阶段冲刺-2
  • 原文地址:https://www.cnblogs.com/cccaroline/p/13387090.html
Copyright © 2011-2022 走看看