寫發(fā)布訂閱的時(shí)候遇到了個(gè)問題。我在調(diào)用crop.remove()的時(shí)候清空了fns 但是打印fns還是有數(shù)據(jù)的。fns.length = 0;這樣是可以清除的。fns不是也指向了this.list[key]嗎?下方有打印結(jié)果let crop = {
list: {},
on(key, fn) { if(!this.list[key]) {
this.list[key] = [];
}
this.list[key].push(fn);
},
emit(key, ...payload) { let fns = this.list[key]; if(!fns || fns.length === 0) return;
fns.forEach(fn => { fn.apply(this, payload);
})
},
remove(key, fn) { let fns = this.list[key];
console.log(key);
fns = [];
}
}
將對象賦值給變量,修改變量為什么對象沒有被改變?
慕的地8271018
2018-07-18 13:48:09