• 函数调用面试题


    
    
     1 //填一个表达式,使控制台可以打印出   100   150 
     2 function obj(){
     3         (_______???_____)
     4 }
     5 
     6 var a = new Object;
     7 var b = new Object;
     8 
     9 a.value = '100';
    10 b.value = '150';
    11 
    12 a.obj = obj;
    13 b.obj = obj;
    14 
    15 console.log(a.obj()); //100
    16 console.log(b.obj()); //150

    代码解释

     1     function obj(){
     2         return this.value;
     3     }
     4 
     5 //创建两个window对象
     6     var a = new Object;
     7     var b = new Object;
     8 //给两个对象分别添加了value属性
     9     a.value = '100';
    10     b.value = '150';
    11 //给两个对象分别添加了obj这个方法,并且赋值了obj这个函数,obj函数的返回值是this.value
    12 //那么a.obj = this.value指向自己的value属性
    13 //现在的a,b分别有两个成员,obj()这个函数和value
    14     a.obj = obj;
    15     b.obj = obj;
    16 //方法调用函数模式的rhis指向调用函数的对象
    17 //a.obj() == this.value
    18     console.log(a.obj());
    19     console.log(b.obj());
    20     console.log(a.value);//  a.obj() == a.value
     

    2.语句var arr = [a,b,c,d];执行后,数组中每一项都是整数,下面能得到最大值的表达式是

      A:Math.max(arr);

      B:Math.max(arr[0],arr[1],arr[2],arr[3]);

      C:Math.max.call(Math,arr[0],arr[1],arr[2],arr[3]);

      D:Math.max.apply(Math,arr);

      答案:BCD

    3.如何避免JS多人开发函数重名问题?

      A.根据不同开发人员实现的功能,在函数前加前缀

      B.每个开发人员都把自己的函数封装到对象中,然后调用发时候即时函数名相同,但是因为是对象.函数名来调用,所以减少了重名的可能性

          ...

          ...

          ...

         持续更新...

  • 相关阅读:
    SQL SERVER 2012修改数据库名称(包括 db.mdf 名称的修改)
    vmware三种网络模式
    指针
    linux 中 开放端口,以及防火墙的相关命令
    数据库备份的脚本,记录下,还需优化下
    遍历 目录的几种有效办法
    转。git 乌龟的使用安装
    centos 时区正确,时间不对
    locate
    从 零开始 无差错 装好nginx+PHP
  • 原文地址:https://www.cnblogs.com/mr-yuan/p/6006283.html
Copyright © 2020-2023  润新知