OSDN Git Service

onメソッドについて、関数オブジェクトにプロパティを設定する方法に戻した
authordhrname <sie-developers@lists.sourceforge.jp>
Fri, 13 Jun 2014 14:20:21 +0000 (23:20 +0900)
committerdhrname <sie-developers@lists.sourceforge.jp>
Fri, 13 Jun 2014 14:20:21 +0000 (23:20 +0900)
tool/funcproto/base.js

index 9b55c30..1589db9 100644 (file)
@@ -73,26 +73,16 @@ this.on = function(name, func) {
       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
@@ -128,6 +118,7 @@ this.on = function(name, func) {
         te = ts = _name = isCalled = void 0;\r
         return s;\r
       };\r
+      this[name].isOn = true;\r
     }\r
     tev.push({\r
             name: name,\r