Javascript 回调函数中的参数
我有一个小库,这里是我使用的一个函数的片段Javascript 回调函数中的参数,javascript,jquery,loops,callback,arguments,Javascript,Jquery,Loops,Callback,Arguments,我有一个小库,这里是我使用的一个函数的片段 HashManager.prototype.on = function(hash, callback) { if(hash[0] == '#') { hash = hash.substr(1); } if( typeof this.observers[hash] !== 'object' ) { this.observers[hash] = []; } this.observers[hash].pu
HashManager.prototype.on = function(hash, callback) {
if(hash[0] == '#') { hash = hash.substr(1); }
if( typeof this.observers[hash] !== 'object' ) {
this.observers[hash] = [];
}
this.observers[hash].push(callback);
return this.observers[hash][this.observers[hash].length-1];
};
这是我的行李
var ajaxURLS = {
'#!o_kompanii': '/apages/about.html',
'#!production': '/apages/production.html',
'#!gde_kupit': '/apages/gde_kupit.html',
'#!hozyaike_na_zametku': '/apages/hozyaike_na_zametku.html',
'#!news': '/apages/news.html',
'#!contacts': '/apages/contacts.html',
'#!kurochka_po_zernyshku': '/apages/kurochka_po_zernyshku.html'
};
这是我的循环
var HM = new window.HashManager();
$.each(ajaxURLS,function(hash, uri) {
HM.on(hash, function(uri,hash) {
console.log(uri);
console.log(hash);
});
});
我的问题是console.log总是向我打印数组的最后一个键和值
如何正确传递参数?
非常感谢,向您致以最诚挚的问候应该会帮助您:
var HM = new window.HashManager();
$.each(ajaxURLS, function(_hash, _uri) {
HM.on(_hash, (function(uri,hash) {
console.log(uri);
console.log(hash);
})(_hash, _uri));
});