forked from WangJia-mm/JavaScript201708
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path3.js
More file actions
98 lines (72 loc) · 1.98 KB
/
3.js
File metadata and controls
98 lines (72 loc) · 1.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
~function () {
let Plan = function () {
};
Plan.prototype = {
constructor: Plan,
//=>向计划表中增加方法
add: function (fn) {
//this->实例
let planList = this.planList;
for (var i = 0; i < planList.length; i++) {
var item = planList[i];
if (item === fn) {
return;
}
}
planList.push(fn);
},
//=>移除计划表中的方法
remove: function (fn) {
//this->实例
let planList = this.planList;
for (var i = 0; i < planList.length; i++) {
var item = planList[i];
if (item === fn) {
planList[i] = null;
break;
}
}
},
//=>通知计划表中的方法执行
fire: function () {
let planList = this.planList;
for (var i = 0; i < planList.length; i++) {
var item = planList[i];
if (item === null) {
planList.splice(i, 1);
i--;
continue;
}
item.apply(this, arguments);
}
}
};
//=>Callbacks:创建一个计划
Plan.Callbacks = function () {
//->创建Plan的一个实例
let p = new Plan;
//->给当前实例增加一个空的计划表
p.planList = [];
return p;
};
window.$ = Plan;
}();
let p1 = $.Callbacks();
p1.add(function () {
});
p1.fire(100, 200, 300);
let p2 = $.Callbacks();
//----------------------------------
// let ary = [function () {
// console.log(1);
// }, function () {
// console.log(2);
// }];
// for (var i = 0; i < ary.length; i++) {
// var item = ary[i];//->item=xxxfff000
// if (i === 0) {
// item = null;//->item=null
// break;
// }
// }
// console.log(ary);