鍍金池/ 問答/HTML/ 數(shù)組 push

數(shù)組 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進(jìn)去

};

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

console.log('hello');

});

回答
編輯回答
涼心人

問題一:
push的時候應(yīng)該參考樓上的方式:

obj._get_.push({[str]:callback});

或者考慮到兼容性問題,使用下面的方式:

let tmp = {}
tmp[str] = callback
obj._get_.push(tmp)

問題二:
JSON.stringify在序列化函數(shù)的時候,如果函數(shù)出現(xiàn)在對象中,會直接忽略,如果是在數(shù)組中,會轉(zhuǎn)化為null

let a = {hello: function() {console.log('hello')}}
JSON.stringify(a) // "{}"
a = [function() {console.log('hello')}]
JSON.stringify(a) // "[null]"

clipboard.png

所以,并不是沒有push進(jìn)去,只是在JSON.stringify的時候沒有把函數(shù)過濾掉了,你直接打印obj是可以看到里面的元素的。

2017年7月22日 12:00
編輯回答
不討喜
obj._get_.push({[str]:callback});
2017年6月4日 08:50