为了账号安全,请及时绑定邮箱和手机立即绑定

新手:关于函数对象

新手:关于函数对象

Smart猫小萌 2018-10-19 10:13:55
这样写是对的
查看完整描述

1 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

var byteArrayUntil=(function(){

   getUseData=function(data,offset){   //敲黑板!!!划重点!面试必考题! 声明变量不写var,就等于 window.getUseData

        var arr=[];

        for(var i=0;i<=799;i++){

            arr.push(i);

        }

        return arr;

    }

   getUseJson=function(data,offset){

        var arr=[];

        for(var i=0;i<=500;i++){

            arr.push(i);

        }

        return {'hz':arr};

    }

return this; //这里this是什么呢?是运行的上下文,这是个立即执行函数,是谁执行了它捏?是window,所以这里的this就是window 对象,辣么var byteArrayUntil = 这个return的this,辣么,byteArrayUntil 就指向了window。

})();

console.log(byteArrayUntil.getUseJson()); // 所以,byteArrayUntil.getUseJson() 就等于 window.getUseJson()

同样道理,下面那个报错的代码块
this依然等于window,this.getUseJson就等于window.getUseJson和上一题一样
但是,byteArrayUntil在这里啥都不是啊。。因为立即执行函数木有return,它就是个undefined。
so,undefined.getUseJson()必然报错了。

查看完整回答
反对 回复 2018-11-05
  • 1 回答
  • 0 关注
  • 521 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号