代码拉取完成,页面将自动刷新
同步操作将从 高翔/大前端 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>发布订阅模式</title>
</head>
<body>
<script type="text/javascript">
// var ab = {};
// ab.list = [];
// 增加订阅者
// ab.listen = function(key, fn) {
// if (!this.list[key]) {
// this.list[key] = []
// }
// this.list[key].push(fn)
// }
// // 发布消息
// ab.trigger = function() {
// let key = Array.prototype.shift.call(arguments);
// let fns = this.list[key];
// if (!fns || fns.length == 0) {
// return
// }
// let fn = null;
// for (let i = 0; i < fns.length; i++) {
// fn = fns[i];
// fn.apply(this, arguments);
// }
// }
// //取消订阅
// ab.remove = function(key, fn) {
// let fns = ab.list[key];
// if (!fns) {
// return
// }
// if (!fn) {
// fns.length = 0;
// return
// }
// for (let j = fns.length - 1; j >= 0; j--) {
// if (fns[j] === fn) {
// fns.splice(j, 1)
// }
// }
// }
// ab.listen('red', function() {
// console.log("颜色是:", arguments[0].color)
// console.log("尺寸是:", arguments[0].size)
// })
// ab.listen('black', black = function() {
// console.log("颜色是:", arguments[0].color)
// console.log("尺寸是:", arguments[0].size)
// })
// ab.trigger('red', {
// color: "red",
// size: 42
// });
// ab.trigger('black', {
// color: "black",
// size: 38
// });
// ab.remove('black', black)
// console.log(ab)
var Event = (function() {
var list = [],listen, trigger, remove;
//增加订阅
listen = function(key, fn) {
if (!this.list[key]) {
this.list[key] = []
}
this.list[key].push(fn)
};
// 发布消息
trigger = function() {
let key = Array.prototype.shift.call(arguments);
let fns = this.list[key];
if (!fns || fns.length == 0) {
return
}
let fn = null;
for (let i = 0; i < fns.length; i++) {
fn = fns[i];
fn.apply(this, arguments);
}
};
// 取消订阅
remove = function(key, fn) {
let fns = ab.list[key];
if (!fns) {
return
}
if (!fn) {
fns.length = 0;
return
}
for (let j = fns.length - 1; j >= 0; j--) {
if (fns[j] === fn) {
fns.splice(j, 1)
}
}
};
return {
listen,
trigger,
remove
}
})()
</script>
</body>
</html>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。