美文网首页
函数对象问题

函数对象问题

作者: 一现_ | 来源:发表于2017-09-07 12:31 被阅读0次

function fun(n,o){

      console.log(o);

      return {

           fun:function(m){

           return fun(m,n);

      }

   }

}

var a = fun(0).fun(1);

a.fun(2);

a.fun(3);

var b = fun(0).fun(1).fun(2).fun(3);

var c = fun(0);

c.fun(1);

c.fun(2);

c.fun(3);

答案是:

undefined 0 1 1

undefined 0 1 2

undefined 0 0 0

解析:这个类似于闭包和传参的问题,先看var a = fun(0).fun(1)

这个是先调用了fun(0),可以理解为先整个大的fun函数先传一个0,那么0对应n,此时因为o没有传参数,所以console.log(o),此时的o是undefined

fun(0).fun(1)是调用return里面的fun函数,传入1,1对应m,最终返回了fun(1,0),此时又调用了大的fun函数,fun(1,0),console.log(o),此时的o是0,输出0

a.fun(2)相当于fun(1,0).fun(2),三个参数齐全,返回的函数是fun(2,1),n=2,o=1,console.log(o)是1

a.fun(3)同上,返回函数为fun(3,1),n=3,o=1,console.log(o)是1

其余答案类似。

相关文章

  • 函数对象问题

    function fun(n,o){ console.log(o); return { fu...

  • JavaScript---原型

    学习目标 使用 prototype 原型对象解决构造函数的问题 理解什么是原型(原型对象) 构造函数、protot...

  • 2022-12-16 Cannot construct in

    原因JSON对象转换的时候出现问题,传值对象没有构造函数; 加上构造函数 启动测试正常

  • 常见问题@总结

    箭头函数: 注意:1. this问题, 定义函数所在的对象,不在是运行时所在的对象2. 箭头函数里面没有argum...

  • js函数对象和回调

    函数对象和实例对象 函数对象:将函数作为对象使用时,简称函数对象实例对象:new函数产生的对象,简单对象 ()的左...

  • js-创建对象

    工厂模式缺点:虽然解决了创建多个相似对象的问题,但是没能识别对象类型 构造函数模式 几点tips:构造函数的函数名...

  • 面向对象编程

    创建对象 工厂模式 解决了创建相似对象的问题,但没有解决对象识别的问题 构造函数模式 解决了对象识别的问题,构造函...

  • React Native 关于箭头函数、普通函数与点击事件的调用

    箭头函数 箭头函数一个重要的好处就是对于this对象指向问题,在普通函数中this对象的指向是可变的,所以在普通函...

  • Promsie深入2

    预备知识 函数对象与实例对象 函数对象:将函数作为对象使用,简称为函数对象实例对象:new 函数产生对象,简称为对...

  • js高三精炼 —— 引用类型(下)

    Function 函数是对象,函数名是指针 函数是对象,函数名是指针 函数是对象,函数名是指针 函数是对象,函数名...

网友评论

      本文标题:函数对象问题

      本文链接:https://www.haomeiwen.com/subject/kjcijxtx.html