throw new Error("Not support arguments type");\r
}\r
var tev = this._eventList__,\r
- tn = this[name],\r
- isOn = true;\r
+ tn = this[name];\r
if (!this._eventList__) {\r
tev = this._eventList__ = [];\r
- isOn = false;\r
} else if (!this.hasOwnProperty("_eventList__")) { //祖先がすでにonメソッドを呼び出していれば\r
var s = [];\r
s._parent = tev;\r
tev = this._eventList__ = s;\r
s = void 0;\r
- } else {\r
- for (var i=0, te = tev.length;i<te;++i) {\r
- if (tev[i].name === name) {\r
- /*すでに同じ名前のメソッドが存在する*/\r
- isOn = false;\r
- break;\r
- }\r
- }\r
}\r
- if (!isOn) { //まだ、onメソッドが呼び出されていなければ\r
+ if (!this[name] || !tn.isOn) { //まだ、onメソッドが呼び出されていなければ\r
/*nameで指定されたメソッドの初期化*/\r
if (typeof tn === "function") {\r
/*nameで指定されたメソッドがすでにある場合は、配列tevの親をたどれないようにしておく*/\r
te = ts = _name = isCalled = void 0;\r
return s;\r
};\r
+ this[name].isOn = true;\r
}\r
tev.push({\r
name: name,\r