数组 push

var app=function(){

};
var obj={

_get_:[],
_post_:[]

}
app.get=function(str,callback){

obj._get_.push({str:callback});
console.log(JSON.stringify(obj));//{"_get_":[{}],"_post_":[]} 为什么返回的是这个,没有push进去

};

app.get('/login',function(){

console.log('hello');

});


慕后森
浏览 609回答 1
1回答

一只斗牛犬

问题一:push的时候应该参考楼上的方式:obj._get_.push({[str]:callback});或者考虑到兼容性问题,使用下面的方式:let tmp = {} tmp[str] = callback obj._get_.push(tmp)问题二:JSON.stringify在序列化函数的时候,如果函数出现在对象中,会直接忽略,如果是在数组中,会转化为null:let a = {hello: function() {console.log('hello')}}JSON.stringify(a) // "{}"a = [function() {console.log('hello')}]JSON.stringify(a) // "[null]"所以,并不是没有push进去,只是在JSON.stringify的时候没有把函数过滤掉了,你直接打印obj是可以看到里面的元素的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript