这样写是对的
var byteArrayUntil=(function(){
getUseData=function(data,offset){
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;
})();
console.log(byteArrayUntil.getUseJson());
但是这样:
var byteArrayUntil=(function(){
this.getUseData=function(data,offset){
var arr=[];
for(var i=0;i<=799;i++){
arr.push(i);
}
return arr;
}
this.getUseJson=function(data,offset){
var arr=[];
for(var i=0;i<=500;i++){
arr.push(i);
}
return {'hz':arr};
}
})();
console.log(byteArrayUntil.getUseJson);
这是为什么呢?
同样道理,下面那个报错的代码块
this依然等于window,this.getUseJson就等于window.getUseJson和上一题一样
但是,byteArrayUntil在这里啥都不是啊。。因为立即执行函数木有return,它就是个undefined。
so,undefined.getUseJson()必然报错了。